程序代码:
#include <iostream.h>
int fun(int a,int b)
{
if (a==1)return b;
else return b*fun(a-1,b);
}
void main()
{
long int a,b=0,c=1,e=0;
cin>>a;
for (;a>=2;a=a/2)
{
b=a%2*fun(c,10);
e+=b;
c++;
}
cout<<e<<endl;
}
下面是一部分对应的输入与输出结果:
0->0;1->0;2->0;3->10;4->0;5->10;6->100;7->110;8->0;9->10;10->100;11->110;12->1000;13->1010;14->1100;15->1110;16->0;17->10;18->100;19->110;20->1000;21->1010;22->1100;23->1110;24->10000;25->10010;26->10100;27->10110;28->11000;29->11010;30->11100;31->11110;32->0;33->10;34->100;35->110;36->1000;37->1010;38->1100;39->1110;
可以添加代码循环执行得到