这道题我们可以用递推的算法来做,代码如下:
#include<bits/stdc++.h>//万能头文件
using namespace std;//好习惯
int a[1005];//定一个数组,存放每个n对应的数列的个数
int main()
{
int n;//定一个函数n
cin >> n;//输入
a[0]=1;//只有一个数字n的数列我们定义为a[0]。例如单6
a[1]=1;//a[1]就是n,1
for(int i=2; i<=n; i++)//定个循环,记得从2开始,递推到n。
{
//a[n]=a[0]+a[1]+a[2]......a[n/2]。
//例如我们要算6的所有数列,我们只需要算出6,1;6,2;6,3开头的所有数列
for(int j=0; j<=i/2; j++)
{
a[i]=a[i]+a[j];
}
}
cout << a[n];//输出
return 0;//好习惯
}
希望有大佬指点指点,也希望能关注关注,感谢