题解 | #蛇形矩阵#

蛇形矩阵

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

import java.util.Scanner;
// 利用 矩阵相邻数字之间的差 为 等差数列 来解决
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();
        int[][]snake = new int[n][n];
        snake[0][0] = 1;
        int countRow = 2;
        int countCol = 1;
        for (int i = 1; i < n; i++) {
            snake[i][0] = snake[i - 1][0] + countCol;
            countCol++;
        }
        for (int i = 0; i < n; i++) {
            int thisCountRow = countRow;
            for (int j = 1; j < n; j++) {
                snake[i][j] = snake[i][j - 1] + thisCountRow;
                thisCountRow++;
            }
            countRow++;
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n-i; j++) {
                if (snake[i][j] != 0)
                    System.out.print(snake[i][j] + " ");
            }
            System.out.println();
        }


        /*int [][] snake = new int[n][n];
        // 由于输入正整数
        snake[0][0] = 1;
        if(n>=2){
            for(int i=1;i<n;i++){
                snake[i][0] = snake[0][i-1] + 1;
                // 左侧第一列

                for(int j=1;j<=i;j++){
                    snake[i-j][j] = snake[i-j+1][j-1] + 1;
                }
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(snake[i][j]!=0)
                System.out.print(snake[i][j] + " ");
            }
            System.out.println();
        }*/
    }
}

全部评论

相关推荐

团子请爱我一次_十月...:不是戈门,干哪来了,这就是java嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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