求救 正整数 转化成2进制 编译通过,当n >1就不出结果了.
#include <iostream>
using namespace std;
int er(int t)
{
int a=1,b,s=1;
for(int i=1;;i++)
{
a*=2;
if(t==a)
{
for(int j=1;j <=i;j++)
{
s*=10;
}
b=a;
}
else if(t <a)
{
if(t==0)
{
s=0;
return s;
}
else if(t==1)
{
s=1;
return s;
}
else if(t> 1)
{
for(int k=1;k <i;k++)
{
s*=10;
}
b=a/2;
}
}
}
s=s+er(t-b);
return s;
}
int main()
{
cout < < "qing shu ru n: " < <endl;
int n;
cin> > n;
cout < <er(n) < <endl;
return 0;
}
[解决办法]
char *itoa(
int value,
char *str,
int radix
);
char c[20]={0};
itoa(123,c,2);
cout < <c < <endl;