# 蛇形填数 如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。 ![](https://img-blog.csdnimg.cn/20210221154521571.png) 容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少? 以下程序实现了这一功能,请你补全以下空白处内容: 提示: ```json 当到达边界时,判断它应该向右走还是向下走,向右走完就直接向左下走,向下走完就直接向右上走 ``` ```c #include 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; } ``` ## 答案 ```c a[i][j] = cnt++; if (i == 0) break; i--; j++; ``` ## 选项 ### A ```c a[i][j] = cnt++; if (i == 0) break; i++; j--; ``` ### B ```c a[i][j] = cnt++; if (i == 0) break; i--; j--; ``` ### C ```c a[i][j] = cnt++; if (i == 0) break; i++; j++; ```