你原来的程序里逻辑上是有问题的,这个题用一个递归函数就解决了#includeint f(int n){ if (n<=3) return n; else return f(n-1)+f(n-3);}main(){int a,r;scanf("%d",&a);r=f(a);printf("%d\n",r);}