|
发表于 2022-2-26 15:39:43
|
显示全部楼层
答案是 761 吗?
Main.java- public class Main {
- public static void main(String[] args) {
- int N = 20;
- // int[][] arr = new int[N*2+1][N*2+1]; 因为题目只要求矩阵第 20 行第 20 列的值,所以不用全部值都储存
- boolean flag = true;
- for(int num = 1, a, b = a = 0;; num++) { // a = 0 为上边界,b = 0 为左边界,这里没有设右边界和下边界,因为不需要。
- // arr[a][b] = num; 如上,题目只要求矩阵第 20 行第 20 列的值,不必储存
- if(a == N-1 && b == N-1){
- System.out.println(num); //
- break;
- }
- if(flag){ // flag = true 往下
- if(b == 0){ // 抵达边界,则反转
- flag = !flag;
- }
- else b--;
- a++;
- }
- else{ // flag = false 往上
- if(a == 0){ // 抵达边界,则反转
- flag = !flag;
- }
- else a--;
- b++;
- }
- }
- }
- }
复制代码 |
|