题解 | #杨辉三角的变形#
杨辉三角的变形
https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
import java.util.*;
/**
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 3 2 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 3 6 7 6 3 1 0 0 0 0 0 0
0 0 0 0 0 1 4 10 16 19 16 10 4 1 0 0 0 0 0
0 0 0 0 1 5 15 30 45 51 45 30 15 5 1 0 0 0 0
0 0 0 1 6 21 50 90 126 141 126 90 50 21 6 1 0 0 0
0 0 1 7 28 77 161 266 357 393 357 266 161 77 28 7 1 0 0
0 1 8 36 112 266 504 784 1016 1107 1016 784 504 266 112 36 8 1 0
1 9 45 156 414 882 1554 2304 2907 3139 2907 2304 1554 882 414 156 45 9 1
观察发现,n>2时偶数出现位置为 2、3、2、4往复循环
*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
System.out.println(solve(a));
}
}
public static int solve(int a) {
if (a < 3) return -1;
if ((a - 2) % 4 == 1) return 2;
else if ((a - 2) % 4 == 2) return 3;
else if ((a - 2) % 4 == 3) return 2;
else return 4;
}
}
/**
int[n][m] n=a m=1+2*(a-1) center = m/2
0 0 0 0 1 0 0 0 0 1 1 3^0 1=1+2*0
0 0 0 1 1 1 0 0 0 2 3 3^1 3=1+2*1
0 0 1 2 3 2 1 0 0 3 9 3^2 5=1+2*2
0 1 3 6 7 6 3 1 0 4 27 3^3 7=1+2*3
1 4 10 16 19 16 10 4 1 5 81 3^4 9=1+2*4
*/
查看10道真题和解析
