原题链接:蛇行矩阵
解题思路:以n=5为例:
第一行第一个数是1
每一行的第一个数与前一行的第一个数依次大1,2,3,4
由此我们可以推出每一行的第一个数
第一行前一个数和后一个数依次相差2,3,4,5
第二行前一个数和后一个数依次相差3,4,5
第三行前一个数和后一个数依次相差4,5
第四行前一个数和后一个数依次相差5
最后一行是一个数,可以用每一行的第一个数与前一行的第一个数差值的规律推出
定义了两个变量first1,first2,first2用来记录每一行的第一个数,first1来利用first2计算出每一行中的各个数
注意事项:
每行末尾不能有空格
参考代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int first1; int first2 = 1; for (int i = n; i >= 0; i--) { first2 = first2 + n - i; first1 = first2; for (int j = 0; j < i - 1; j++) { System.out.print(first1 + " "); first1 = first1 + 2 + j + n - i; } if (i != 0) { System.out.print(first1); System.out.println(""); } } } }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复