题解 | #杨辉三角的变形#
杨辉三角的变形
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 */