c++题目:有一天,小明从1开始数数,同时在纸上写下每个数的个位数字。小明数数的顺序是1,2,3,4,5,6,7,8,9,0,1,2,3……。因为他非常热爱直角三角形,所以在纸上写下的数字按照直角三角形排列。现在告诉你他写了N行数字,要求你打出这些数字。
时间: 2024-01-13 09:02:52 浏览: 119
这道题目可以使用二维数组来实现直角三角形的排列,具体的实现思路如下:
1. 首先,我们需要计算出小明写下的数字总数,即1~N行数字中的数字个数。
2. 接着,我们可以根据小明数数的规律,将数字按照直角三角形的排列方式存储到二维数组中。
3. 最后,我们按照题目要求输出二维数组中的数字即可。
下面是具体的实现代码:
```c++
#include <iostream>
using namespace std;
const int MAXN = 1005;
int a[MAXN][MAXN]; // 二维数组
int main() {
int n, k = 1;
cin >> n; // 输入行数
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
a[i][j] = k % 10; // 取出个位数字
k++;
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
cout << a[i][j]; // 输出数字
}
cout << endl;
}
return 0;
}
```
上述代码中,我们使用了两层循环来实现直角三角形的排列。在第一层循环中,我们循环N次,即按照题目要求输出N行数字;在第二层循环中,我们循环i次,即在第i行输出i个数字。在循环过程中,我们使用了一个变量k来记录小明数数的数字,每次取出k的个位数字存储到二维数组中。最后,我们再次使用两层循环输出二维数组中的数字即可。
阅读全文