题意及思路
题意:略。 思路:给出一个例子,😄对于4来说,4的左边可以加上1或者2,这是满足题意的。同理,2的左边可以加上1,1的左边不可以加了。😉emmm,可以看出,2能产生的数应该是等于12 + 2,1能产生的数是1。而4能产生的数是14、24、124,最后还有本身4,共产生了4个数。😕不难得出,,其中 j 是所有不超过 i/2 的所有数。数组 q 存储的是当前数能产生的个数,最后+1代表加上本身。
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+5;
int q[N];
int main(){ std::ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n; for(int i=1;i<=n;i++){
for(int j=1;j<=i/2;j++){
q[i] += q[j];
}
q[i]++;
}
cout << q[n] << endl;
return 0;
}
题目标签
- 递归
- 递推