题解 | #蛇形矩阵#

蛇形矩阵

http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

//思路:
//同一列,相邻两行的关系为:下一行元素值 = 当前行元素值 + 下一行行号
//例如,snake[i][j]=snake[i-1][j]+i
//同一行,相邻两列的关系为:下一列元素值 = 当前列元素值 + 行号 + 下一列列号 + 1
//例如,snake[i][j]=snake[i][j-1]+i+j+1;
//程序:
#include<stdio.h>
#include<string.h>
int main(){
    int N=0;
    int snake[101][101]={0};
    scanf("%d",&N);
    //由N计算各行各列的数
    for(int i=0;i<N;i++){
        //确定每行第0列的数
        snake[0][0]=1;
        if(i>0)
        snake[i][0]=snake[i-1][0]+i;
        //已知第0***定其他各列的数
        for(int j=1;i+j<N;j++){
            snake[i][j]=snake[i][j-1]+i+j+1;
        }
    }
    //输出
    for(int i=0;i<N;i++){
        for(int j=0;i+j<N;j++){
             printf("%d ",snake[i][j]);
        }
         printf("\n");
    }
}
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务