跳到主要内容

2.3 循环嵌套与字符练习题一

一、填空题:输出奇数数字

【题目描述】

请在以下 C++ 代码的 if (______) 处填写合适的条件表达式,使得程序输出从字符 '1''9'所有奇数字符的个数(即 '1', '3', '5', '7', '9')。

#include <iostream>
using namespace std;

int main() {
int cnt = 0;
for (char ch = '1'; ch <= '9'; ch++)
if (______) // 在此处填入代码
cnt++;
cout << cnt << endl;
return 0;
}

二、字符矩形

【问题描述】

根据输入参数,画出一个矩形图案。

  • 前两个参数为整数,依次表示矩形的(行数)和(列数);
    约定:高 ∈ [3, 10],宽 ∈ [5, 10]。
  • 第三个参数是一个字符,表示用于绘制矩形的符号。
  • 第四个参数为 10
    • 1 表示实心矩形
    • 0 表示空心矩形(仅边界有符号,内部为空格)。

【输入格式】

一行,包含四个参数,以空格分隔:
高 宽 符号 实心标志

【输出格式】

输出绘制的矩形图形。
⚠️ 注意:

  • 每行末尾不能有多余空格
  • 行与行之间用换行符分隔;
  • 空心矩形的内部用空格填充,且每行宽度严格等于“宽”。

【样例输入 1】

7 7 @ 0

【样例输出 1】

@@@@@@@
@ @
@ @
@ @
@ @
@ @
@@@@@@@

🔍 说明:7 行 × 7 列,符号 @,空心(仅首尾行全为 @,中间行首尾为 @,中间为 5 个空格)。


【样例输入 2】(补充:实心示例)

3 5 # 1

【样例输出 2】

#####
#####
#####

三、累加和之和

【问题描述】

输入一个正整数 nn,计算以下累加和之和:

S=1 + (1+2) + (1+2+3) +  + (1+2+3++n)S = 1\ +\ (1+2)\ +\ (1+2+3)\ +\ \cdots\ +\ (1+2+3+\dots+n)

即:第 kk 项为前 kk 个自然数之和(1kn1 \le k \le n),求这 nn 项的总和。

约定:1n1001 \le n \le 100


【输入格式】

一行,一个整数 nn

【输出格式】

一行,一个整数 SS


【样例输入 1】

6

【样例输出 1】

56

【样例解释】

各项分别为:

  • 1=11 = 1
  • 1+2=31+2 = 3
  • 1+2+3=61+2+3 = 6
  • 1+2+3+4=101+2+3+4 = 10
  • 1+2+3+4+5=151+2+3+4+5 = 15
  • 1+2+3+4+5+6=211+2+3+4+5+6 = 21

求和:1+3+6+10+15+21=561 + 3 + 6 + 10 + 15 + 21 = 56

四、百钱百鸡变形

小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元;现在有 n 元,买了 m 只鸡,共有多少种方案?

【输入描述】

输入一行,包含五个整数,分别为问题描述中的 x、y、z、n、m。约定 1 ≤ x, y, z ≤ 10,1 ≤ n, m ≤ 1000。

【输出描述】

输出一行,包含一个整数 C,表示有 C 种方案。

【样例输入 1】

5 3 3 100 100

【样例输出 1】

4

【样例解释 1】

这就是问题描述中的“百鸡问题”。4 种方案分别为:

  • 公鸡 0 只、母鸡 25 只、小鸡 75 只;
  • 公鸡 4 只、母鸡 18 只、小鸡 78 只;
  • 公鸡 8 只、母鸡 11 只、小鸡 81 只;
  • 公鸡 12 只、母鸡 4 只、小鸡 84 只。

【样例输入 2】

1 1 1 100 100

【样例输出 2】

5151

五、画三角形

【问题描述】

输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推;在三角形图案中,由上至下、由左至右依次由大写字母 A-Z 填充,每次使用大写字母 Z 填充后,将从头使用大写字母 A 填充。

【输入描述】

输入一行,包含一个正整数 n。约定 2 ≤ n ≤ 40。

【输出描述】

输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。

【样例输入 1】

3

【样例输出 1】

A
BC
DEF

【样例输入 2】

7

【样例输出 2】

A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB

六、统计方形(数据加强版)

题目背景

1997年普及组第一题

题目描述

有一个 n×mn \times m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。

输入格式

一行,两个正整数 n,mn,mn5000,m5000n \leq 5000,m \leq 5000)。

输出格式

一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。

输入输出样例 #1

输入 #1

2 3

输出 #1

8 10

*学习笔记

暂没有学习笔记,快来抢first blood !