//这是递归 #include<iostream> using namespace std; int f(int n) { if(n==0 || n==1) return 1; return f(n-2) + f(n/2); } int main() { int n; cin >> n; cout << f(n) << endl; return 0; }
//这是递推 #include<iostream> using namespace std; int f[1005]={1,1}; int main() { int n; cin >> n; for (int i = 2; i <= n; ++ i) { if (i - 2 >= 0) f[i] += f[i - 2]; if (i/2 > 0) f[i] += f[i/2]; } cout << f[n] << endl; return 0; }
这两个代码都是实现 f(x)=f(x-2)+f(x/2)的。
具体就不讲了。一目了然,自己琢磨
复制去Google翻译翻译结果
时间: 2024-08-10 10:56:12