【2020】输出矩阵
Time Limit: 3 second
Memory Limit: 2 MB
设计程序,当用户键入n,输出题意规定的n*n矩阵。
例如,用户输入n的值为9,则输出:
999999999
988888889
987777789
987666789
987656789
987666789
987777789
988888889
999999999
Input
输入文件仅一行,输入n(1≤n≤9)。
Output
输出矩阵。(最后用换行结束)
Sample Input
4
Sample Output
4444 4334 4334 4444
【题解】
注意一圈一圈往内外围的数字逐渐递减,然后模拟一下等于9时如何处理,很容易找到规律,把9改成一个变量就可以了。
【代码】
#include <cstdio> const int MAXN = 9; int n,a[MAXN+2][MAXN+2]; void input_data() { scanf("%d",&n); } void get_ans() { for (int i = n;i >= ((n/2)+1);i--) //这里i的下界就是整个矩阵中出现的最小数。 { for (int j = 1+n-i;j <= i;j++) //这里的规律要先模拟一下才能找出来。 取n=9是比较好的选择。 { a[1+n-i][j] = i; a[j][1+n-i] = i; a[i][j] = i; a[j][i] = i; } } for (int i = 1;i <=n;i++) { for (int j = 1;j <= n;j++) printf("%d",a[i][j]); printf("\n"); } } int main() { input_data(); get_ans(); return 0; }