分享一个递归解法。但是题目要求的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;
}

京公网安备 11010502036488号