这道题就是k阶斐波那契数列的小小变形,找到规律了就很简单。
#include<iostream>
using namespace std;
int main(){
int n,a[60],i;
while(scanf("%d",&n),n){
a[0]=1; a[1]=1; a[2]=2; a[3]=3;
for(i=4;i<=n;i++)
a[i]=a[i-2]+a[i-3]+a[i-4];
printf("%d\n",a[n]);
}
return 0;
}