## 找规律 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = 2 * n - 1; if (n == 1 || n == 2) { System.out.println(-1); return; } if (n % 2 != 0) { //奇数行 System.out.println(2); return; } //偶数行 if(n%4==0){ System.out.println(3); } if(n%4==2){ System.out.println(4); } } } ## 利用循环,解出所有数据 package com.example.demo1; import java.util.*; import java.util.stream.Collectors; public class Main{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = 2 * n - 1; int[][] dp = new int[n][m]; if (n == 1 || n == 2) { System.out.println(-1); return; } if (n % 2 != 0) { //奇数行 System.out.println(2); return; } //偶数行 for (int i=0;i<n;i++){ for (int j=0;j<(2*i+1);j++){ if(i==0 || i==1) { dp[i][j]=1; continue; } if(i>1 && j==0) { dp[i][j]=1; continue; } else if(i>1 && j==1){ dp[i][j]=i; continue; }else { dp[i][j] = dp[i - 1][j - 2] + dp[i - 1][j - 1] + dp[i - 1][j]; } } } //1.暴力解法 for (int i = 2; i < m; i++) { // dp[n-1][i] = f(n-1, i); //若存在偶数 if (dp[n-1][i] % 2 == 0) { System.out.println(i + 1); return; } //若不存在偶数 if (i == (m - 1)) { System.out.println(-1); return; } } } } ## 利用递归,解出第i,j个数据 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = 2 * n - 1; int[][] dp = new int[n][m]; if (n == 1 || n == 2) { System.out.println(-1); return; } if (n % 2 != 0) { //奇数行 System.out.println(2); return; } //偶数行 /*for (int i=2;i<n;i++){ for (int j=2;j<2*i+1;j++){ dp[i][j]=f(i,j); } }*/ //1.暴力解法 for (int i = 2; i < m; i++) { dp[n-1][i] = f(n-1, i); //若存在偶数 if (dp[n-1][i] % 2 == 0) { System.out.println(i + 1); return; } //若不存在偶数 if (i == (m - 1)) { System.out.println(-1); return; } } } public static int f(int row, int column) { if (column>2*row) { return 0; }else if (row==1) { return 1; }else if (column==1){ return row; }else if(column==0) { return 1; } return f(row - 1, column - 2) + f(row - 1, column - 1) + f(row - 1, column); } }