算法:递归与分治
输入6 可以得到
6不做任何处理
16 左边添加一位数1,之后,不能继续添加
26 126 左边添加一位数2,之后继续进行相同的处理
36 136 左边添加一位数3,之后继续进行相同的处理
对于每一个数,依次可以构造出首位是1~a/2的新数字 对每一个新数字,继续按照相同的方法进行处理 递归结束的条件是:每一个数字都进行了处理
计算半数集的递推式
#include<iostream>
using namespace std;
int f (int n) {
int x=1;
if(n==1){
return 1;
}
else{
for(int i=1;i<=n/2;i++){
x+=f(i);
}
}
return x;
}
int main() {
int x,y;
cin>>x;
y=f(x);
cout<<y;
return 0;
}