给菠菜网站做外包,网络运营方案怎么写,怎样制作网站的步骤,安卓手机优化软件哪个好题目描述
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出输入描述:
多组数据#xff0c;每行为一个长度不超过30位的十进制非负整数。
#xff08;注意是10进制数字的个数可能有30个#xff0c;而非30bits的整数#xff09;解析
例子 #xff1a;123…题目描述
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出输入描述:
多组数据每行为一个长度不超过30位的十进制非负整数。
注意是10进制数字的个数可能有30个而非30bits的整数解析
例子 123设二进制数组为w[] w[i]123//2?..1 ? 作为下一个的除数 1//20…1(余1加10) (102)//26…0余0加0 (03)//21…1(余1此处的1就是上一条的1) 得到为 ()61 将61填入重复上述过程 …
代码
#include stdio.h
#include string.hchar s[35];
char buf[205];//结果int main(){int num[35];while(scanf(%s,s)!EOF){//按位保存int len strlen(s);for(int i0;ilen;i){num[i]s[i]-0;}int i0;int len_str 0;//一位一位处理while(ilen){int c0;//从末位判断是1还是0buf[len_str] (num[len-1])%20;//更新num数组存储每次的商作为下一次的除数for(int ji;jlen;j){int tempnum[j];num[j] (num[j]c)/2;if(temp%2 1){c 10;}else {c0;}if(num[i]0)i;}}for(int ilen_str-1;i0;i--){printf(%c,buf[i]);}printf(\n);}return 0;
}