九度OnlineJudge题目1138:进制转换
发布时间:2020-12-14 03:40:48 所属栏目:大数据 来源:网络整理
导读:题目链接: http://ac.jobdu.com/problem.php?pid=1138 题目描述: 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入: 多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数)
题目链接:http://ac.jobdu.com/problem.php?pid=1138
AC代码: #include<stdio.h> #include<string.h> int main() { char buf1[30]; int buf2[30]; int ans[100]; int size; while(scanf("%s",buf1)!=EOF) { for(int i=0;i<strlen(buf1);i++) { buf2[i]=buf1[i]-'0'; } int j=0; size=0; while(j!=strlen(buf1)) { int a; for(int i=j;i<strlen(buf1);i++) { a=buf2[i]%2; buf2[i]/=2; if(i!=strlen(buf1)-1) { buf2[i+1]=a*10+buf2[i+1]; } } ans[size++]=a; if(buf2[j]==0) { j++; } } while(size-->0) { printf("%d",ans[size]); } printf("n"); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |