题解 | #蛇形矩阵#
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
C语言模拟,每一列的关系歪打正着,凑出来了
-
对于第一列,每一个都是上一个元素加行号,
1.例如:4(0,2)和2(0,2),4=2+2;
-
对于其他列,每一个都是同一行的前一个元素加行号加列好再加一得到的,
- 例如:5(1,1)和9(1,2),9=5+1+2+1;
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int ans[n][n];
for (int i = 0; i < n; i++) { //行
for (int j = 0; j < n - i; j++) { //列
if (j == 0) { //第一列
if (i == 0) ans[i][j] = 1;
else ans[i][j] = ans[i - 1][j] + i;
} else {
ans[i][j] = ans[i][j - 1] + i + j + 1;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i; j++) {
j && printf(" ");
printf("%d", ans[i][j]);
}
printf("\n");
}
return 0;
}