题目描述
输入整数 N,输出一个 N阶的二维数组 M。
这个 N阶二维数组满足 M[i][j]=2i+j具体形式可参考样例。
输入格式
输入包含多行,每行包含一个整数 N。
当输入行为 N=0时,表示输入结束,且该行无需作任何处理。
输出格式
对于每个输入整数 N,输出一个满足要求的 N阶二维数组。
每个数组占 N行,每行包含 N个用空格隔开的整数。
每个数组输出完毕后,输出一个空行。
解题思路
首先输入一个类似下方的表格:
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
怎么做呢?我们发现,只有第一列的数字变化,其他数字随着第一列变化
于是我们用两个for循环,第一个改变x坐标,第二个输出数字,就得到了上表
那么如何输出需要的表格呢?经过发现我们可以看到目标表格和我们上表的倍数差为2的n次方
(exp2(x)的意义是乘以e的平方)
乘到要输出的数字再四舍五入不保留小数即可:
1 2 4 8
2 4 8 16
4 8 16 32
8 16 32 64
C++ 代码
#include <iostream> //引入C++标准头文件
#include <iomanip> //引入C++输出控制头文件
#include <cmath> //引入C++数学头文件
using namespace std; //描述空间
int main(){ //引入主函数
int n; //定义整型变量n
cin>>n; //用户输入n
while(n!=0){ //当用户输入的不是0
for (int i=0; i<n;i++){ //for循环控制次数(列数)
for (int j=i; j<n+i; j++){ //for循环控制输出每次错开一位
cout<<fixed<<setprecision(0)<<exp2(j)<< ' '; //按照格式输出即可
}
cout<<endl;//输出结束
}
cout<<endl;
cin>>n; //输入下一个n的值
}
return 0;
}
篇章
上一篇:AcWing 754. 平方矩阵 II
https://www.acwing.com/solution/content/209228/
下一篇:AcWing 756. 蛇形矩阵
https://www.acwing.com/solution/content/209244/