觉得你的代码没问题,不过可以再简便点,从第4个月开始,第n个月的数量等于第n-1个月的数量第n-3个月的数量之和
#include
int main() {
int i = 1, sum , yue = 4, n;
scanf("%d", &n);
if (n == 1) {
printf("%d", n);
} else {
int y[4] = {1, 1, 1, 2};
for (i = 4; sum < n; i++) {
sum = y[i%4] = y[(i - 1) % 4] + y[(i - 3) % 4];
yue++;
}
printf("%d",yue);
}
return 0;
}