则进行处理,直至不能添加自然数为止。 例如,set(6)={6,16,26,126,36,136}。 注意:该半数集是多重集。 要求:对于给定的自然数n,计算半数集set(n)中的元素个数。/
(1)//半数集:两种思想如下
//(1)f(n)=1+f(1)+f(2)+f(3)+.....+f(n/2)
//(2)f(n)=f((n/2)*2-1)+f(n/2)
//半数单集(不允许出现相同的元素)
#include<stdio.h>
int banshu(int num)
{
int count=1;
int i;
if(num==1)
return 1;
for(i=1;i<=num/2;i++){
count+=banshu(i);
if(((i/10)*2<=(i%10))&&(i>10))
count-=banshu(i/10);
}
return count;
}
int main()
{
printf("请输入你要求的数:\n");
int number;
scanf("%d",&number);
printf("半数单集set<%d>为:%d\n",number,banshu(number));
return 0;
}