![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cb300b3b1907f6c72ab8b9f3af60e447.png)
非递归
#include<stdio.h>
int main(){
int n = 0;
while((n < 1) || (n >= 101)){
scanf("%d",&n);
}
long a[101] = {0};
a[1] = 1;
a[2] = 1;
a[3] = 1;
a[4] = 1;
a[5] = 2;
a[6] = 3;
a[7] = 4;
a[8] = 5;
for(int i = 9;i <= n;i++){
a[i] = a[i - 1] + a[ i - 4];
}
printf("%ld",a[n]);
return 0;
}
递归
#include<stdio.h>
int func(int n){
if(n <= 4){
return 1;
}else if(n <= 8){
return func(n - 1) + 1;
}else
return func(n - 1) + func(n - 4);
}
int main(){
int n = 0;
while((n < 1) || (n >= 101)){
scanf("%d",&n);
}
int num = func(n);
printf("%d",num);
return 0;
}