#include <bits/stdc++.h>
using namespace std;
int i, j;
int n;
int h[1000];
int main() {
cin >> n;
h[1] = 1;
for (i = 2; i <= n; i++) {
h[i] = 1;
for (j = 1; j <= i / 2; j++) {
h[i] += h[j];
}
}
cout << h[n];
}
第一个自己做出来的递推,并不算太难。
简单来说就是对于数字n,其本身算一个先加1;
然后对于他的下一个数字有1,2,3,4,n/2个,每一个都可以看作一个新的数列的队首,将他们的结果累加就是n的结果,
即是从f[n]=f[1]+f[2]+f[3]......f[n/2]