题解 | #蛇形矩阵#

蛇形矩阵

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();  // 输入的数字 num
        int lastRowFirst = 1;
        for (int i = 0; i < num; i ++) {  // 一共要输出 num 行
            int rowFirst = lastRowFirst + i;  // 当前行的第一个数字,要根据上一行的第一个数字求取
            System.out.print(rowFirst + " ");
            lastRowFirst = rowFirst;  // 更新 lastRowFirst 变量,供打印下一行时使用
            int colDiff = i + 2;  // 在一行中,每一列数字之间的差值
            int nextNum = rowFirst + colDiff;  // 计算下一个要打印的数字
            while (colDiff <= num) {  // 使用 while 循环打印,依据是发现规律:每一行的最后一个数字与倒数第二个数字的差值为 num
                System.out.print(nextNum + " ");
                colDiff ++;
                nextNum += colDiff;
            }
            System.out.println();
        }
    }
}

没找着啥简洁的规律,硬写,写出来的代码也不是很美观。。

全部评论

相关推荐

烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
StephenZ_:我9月份找的第一段实习也是遇到这种骗子公司了,问他后端有多少人和我说7个正职,进去一看只有一个后端剩下的都是产品前端算法(没错甚至还有算法)。还是某制造业中大厂,我离职的时候还阴阳怪气我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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