题解 | #蛇形矩阵#

蛇形矩阵

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

import java.util.Scanner;
// 观察矩阵不难发现 从 1到n*(n+1)/2的数列 按二维数组遍历顺序填充到数组。
// 遍历顺序 为航从下往上递减,列从左往右递增,当到达最顶上一行时,立刻回到最大行下开启新的一行,
// 列则回到第一列, 
// 1 3 6 10 15
// 2 5 9 14
// 4 8 13
// 7 12
// 11

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        int limit = (n*n+n)/2;
        int[][]  sit = new int[n][n]; 
        int j=0;
        int k=0;
        int l=0;
        for(int i=1;i<=limit;i++){
            sit[j][k] = i;
            if(j==0){
                l++;
                j = l;
                k = 0;
            }else{
                j--;
                k++;
            }
            

        }

        for(int a=0;a<n;a++){
            for(int b=0;b<n;b++){
                
                System.out.print(sit[a][b]);
                if(b==n-1||sit[a][b+1]==0){
                    System.out.println(); 
                    break;   
                }else{
                    System.out.print(" ");
                }
            }
        }
    }
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务