分享一个递归解法。但是题目要求的n太大时,运行会超时。
单纯觉得找规律的话这题目就没意思了
#include<stdio.h> int fun(int n, int i) { int num = 0; if (n == 1) { num = 1; } if (i <= 0 || i>(2 * n - 1)) { num = 0; } else if (n > 1) { num = fun(n - 1, i - 2) + fun(n - 1, i - 1) + fun(n - 1, i); } return num; } int main(void) { int n; scanf("%d", &n); int flag = 0; for (int i = 1; i <= (2 * n - 1); i++) { int num = fun(n, i); // printf("%d\n", num); if (num % 2 == 0) { printf("%d\n", i); i = (2 * n); flag = 1; } } if (flag == 0) { printf("-1"); } return 0; }