首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

正整数 转化成2进制 编译通过,当n >1就不出结果了

2012-03-08 
求救 正整数 转化成2进制 编译通过,当n 1就不出结果了.#includeiostreamusingnamespacestdinter(intt)

求救 正整数 转化成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;

热点排行