三、试题 C: 蛇形填数
这一题有很多种解法
第一题纯代码(自创):
import java.util.Scanner;
public class 蛇形填数 {
public static void main(String[] args){
int[][] arr1 = new int[101][101];
int sum = 1;
int i = 1;
Scanner sc = new Scanner(System.in);
System.out.println("please input x");
int x = sc.nextInt();
System.out.println("please input y");
int y = sc.nextInt();
for(int j=1;j<=100;j++){
for(int k=0;k<j;k++){
if(j%2==0){
arr1[i+k][j-k]=sum;
sum++;
}
else{
arr1[j-k][i+k]=sum;
sum++;
}
}
}
System.out.println(arr1[x][y]);
}
}
兜兜转转晕了半小时才清醒过来,看了别的博主解题思路感觉自己想的太麻烦了
第二种解法(借鉴):
【解析】:由 规律推公式 (n-1)**(2*n-1)+n ,带入n=20得结果