题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
#include <stdio.h> int main() { int table[100][100]={1};//直接暴力拆解表格,然后根据要求进行输出 //可以看到,对于第一行来说,an=a(n-1)+n; //第二行则是an=a(n-1)+n+1; //第三行是an=a(n-1)+n+2; //以此类推 //第一列为bn=b(n-1)+n-1,依次确定初值。 int n; scanf("%d",&n); for(int i=0;i<n;i++){ if(i!=0) table[i][0]=table[i-1][0]+i; for(int j=0;j<n-i;j++){ if(j!=0){ table[i][j]=table[i][j-1]+(i+j+1); printf(" %d",table[i][j]); } else{ printf("%d",table[i][j]); } } printf("\n"); } return 0; }
找规律的题,可以看到,由于蛇形的要求,整个矩阵的整体布局是一致的,所以随着n的增大并不影响之前已经存在的值,所以只需要找到每行和每列之间的规律就可以构建出一个完整的矩阵表格;
对于这里千万要注意脚标和数符的一致性,同时注意格式控制的问题。