骨牌铺路
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{cin>>n;cout<<f(n);return 0;
}
int f(int n){if(n==1) return 1;if(n==2) return 2;if(n==3) return 4;return f(n-1)+f(n-2)+f(n-3);
}
统计每个月兔子的总数
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{cin>>n;cout<<f(n);return 0;
}
int f(int n){if(n==1) return 1;if(n==2) return 1;return f(n-1)+f(n-2);
}
求s的值
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{n=0;cout<<f(n);return 0;
}
int f(int n){if(n>=5000) return n;sum++;n=n+sum;return f(n);
}
求多项式的值
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int),f1(int);
int main()
{cin>>n;double s=0;for(int i=1;i<=n;i++){s=s+1.0*f(i)/f1(i);}cout<<fixed<<setprecision(3)<<s;return 0;
}
int f(int n){if(n==1||n==2) return 1;return f(n-1)+f(n-2);
}
int f1(int n){if(n==1) return 1;if(n==2) return 2;return f1(n-1)+f1(n-2);
}
数列求和
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{cin>>n;cout<<f(n);return 0;
}
int f(int n){if(n==1) return 1;sum++;n=n+sum;m=m+n;return f(n);}
爬楼梯
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int i;
int f(int);
int main()
{int a[1000];for(i=0;a[i]!=0;i++){cin>>a[i];}for(i=0;a[i]!=0;i++){cout<<f(a[1000]);}return 0;
}
int f(int a[1000]){if(a[i]==1) return 1;if(a[i]==2) return 1;return f(n-1)+f(n-2);}
PELL数列
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{cin>>n;int a[1000];for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){cout<<f(a[i])<<endl;}return 0;
}
int f(int n){if(n==1) return 1;if(n==2) return 2;return (2*n-1+n-2)%32767;}
斐波那契数列
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{cin>>n;int a[1000];for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){cout<<f(a[i]);}return 0;
}
int f(int n){if(n==1) return 1;if(n==2) return 1;return f(n-1)+f(n-2);}