题目
如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。
容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少?
以下程序实现了这一功能,请你补全以下空白处内容:
提示:
当到达边界时,判断它应该向右走还是向下走,向右走完就直接向左下走,向下走完就直接向右上走 #include <bits/stdc++.h> using namespace std; int main() { int i = 0; int j = 0; int cnt = 2; int a[250][250]; a[0][0] = 1; while (cnt < 1000) { j++; while (i != -1 && j != -1) { a[i][j] = cnt++; if (j == 0) break; i++; j--; } i++; while (i != -1 && j != -1) { ___________; } } for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { cout << setw(5) << a[i][j] << ' '; } cout << '\n'; } cout << a[19][19]; return 0; }
答案:
a[i][j] = cnt++;
if (i == 0)
break;
i--;
j++;