这是一个高度为 3 的数字塔,在这个数字塔下面再加上1层,就成了一个高度为 4 的数字塔。
1
2 3
4 5 6
输入
输入一个数n(0<n<=20)
输出
输出高度为 n 的数字塔。
数据范围
0<n<=20
输入样例
4
输出样例
1
2 3
4 5 6
7 8 9 10
#include <iostream>
void printNumberTower(int n) {
int number = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
std::cout << number << " ";
number++;
}
std::cout << std::endl;
}
}
int main() {
int n;
std::cout << "请输入一个数n(0<n<=20): ";
std::cin >> n;
printNumberTower(n);
return 0;
}
cab
首先,我们要知道数字塔是什么,并且如何输出数字塔。
数字塔是一个三角形的数列,每一行数字都比上一行多 1 个。因此,我们可以用嵌套循环进行输出。
for i in range(1, n+1): # 外层循环,循环次数为塔的高度 n
for j in range(1, i+1): # 内层循环,根据行号 i 控制列数,循环次数为行号 i
print((i-1)*i//2 + j, end=' ') # 输出数字塔中的数字,并用空格隔开
print() # 输出完一行后,换行
接着,我们要处理输入的 n。
因为题目要求输入 n 的范围为 $0 < n \leq 20$,我们需要在程序中添加相关提示。同时,为了防止用户输入非法的数据,我们需要加入输入数据的检验。
n = int(input('请输入一个正整数 n(0<n<=20):'))
if not 0 < n <= 20:
print('输入数据不合法!')
else:
# 添加嵌套循环进行数字塔的输出,具体内容见上文
完整的代码如下:
n = int(input('请输入一个正整数 n(0<n<=20):'))
if not 0 < n <= 20:
print('输入数据不合法!')
else:
for i in range(1, n+1):
for j in range(1, i+1):
print((i-1)*i//2 + j, end=' ')
print()
将上述代码复制到一个 Python 环境中,即可运行并获得数字塔。
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "请输入一个数n(0 < n <= 20) ";
cin >> n;
cout << endl;
int acc = 1;
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < i; j++)
{
cout << acc++ << " ";
}
cout << endl;
}
return 0;
}