【GESP】C++二级练习 luogu-T259140, 三角形
GESP二级练习,多层循环练习,难度★✮☆☆☆。
luogu-T259140
题目要求
题目描述
给出 $n$,请输出一个直角边长度是 $n$ 的数字直角三角形。所有数字都是 $2$ 位组成的,如果没有 $2$ 位则加上前导 $0$。
提示:输出使用
printf("%02d",x);
可以自动给 1 位数补上前导0。
输入格式
输入一个正整数 $n$。
输出格式
输出如题目要求的数字直角三角形。
样例输入 #1
1
5
样例输出 #1
1
2
3
4
5
0102030405
06070809
101112
1314
15
数据范围
数据保证,$1\le n\le13$。
题目分析
这是一个简单的数学问题,我们可以使用两个嵌套的循环来打印数字直角三角形。外层循环控制行数,内层循环控制每行的数字个数。我们使用一个变量b来表示当前的数字,每次打印完一个数字后,b自增1。当b是一位数时,我们使用printf函数打印,保留两位小数。当b是两位数时,我们直接打印。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int a; // 定义变量a
cin >> a; // 输入a
int b = 1; // 定义变量b并初始化为1
for (int i = a; i > 0; i--) { // 外层循环,控制行数
for (int j = 1; j <= i; j++) { // 内层循环,控制每行的数字个数
if (b / 10 == 0) { // 如果b是一位数
printf("%.02d", b); // 输出b,保留两位小数
} else { // 如果b是两位数
printf("%d", b); // 直接输出b
}
b++; // b自增
}
cout << endl; // 换行
}
return 0; // 返回0,表示程序正常结束
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
本文由作者按照 CC BY 4.0 进行授权