队花的烦恼一
时间限制:3000 ms | 内存限制:65535 KB
难度:1
-
描述
-
ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六、十、八进制输出,然而却没有二进制输出,哎,真遗憾!谁能帮我写一个程序实现输入一个十进制数n,输出它的二进制数呀?”
难道你不想帮帮她吗?^_^
-
输入
- 输入有多个数据,数据以EOF结束;每个数据ni(0<=ni<=1000010000)用空格隔开;
(温馨提示:EOF即是一个文件的结束标志;while(scanf("%d",&n)!=EOF){})
输出 - 输出有多行,每行对应一个十进制数ni的二进制数;
注意:输出的二进制去掉任何一个多余的0;
样例输入 -
0 1 2 10
样例输出 -
0 1 10 1010
求问为何在循环时 i=30不能过,i=29就能过, a[30]为什么存的会是输进去的数n???
01.#include<iostream>02.usingnamespacestd;03.intmain()04.{05.intn;06.while(cin>>n)07.{08.intm=1,i=0,r,a[30]={0};09.if(n==0)10.{11.cout<<"0"<<endl;continue;12.}13.while(n)14.{15.r=n%2;16.a[i]=r;17.i++;18.n=n/2;19.}20.intk=1;21.for(inti=29;i>=0;i--)22.{23.if(k)24.{25.if(a[i]!=0)26.{27.cout<<a[i];28.k=0;29.}30.}31.else32.cout<<a[i];33.}34.cout<<endl;35.}36.return0;37.}
- 输入有多个数据,数据以EOF结束;每个数据ni(0<=ni<=1000010000)用空格隔开;
本文介绍了一个帮助ACM队队花解决二进制转换问题的程序。该程序可以将用户输入的十进制数转换为对应的二进制数,并去除多余的前导零。

1030

被折叠的 条评论
为什么被折叠?



