我是靠谱客的博主 喜悦月饼,最近开发中收集的这篇文章主要介绍《算法笔记》3.5小节——入门模拟->进制转换 问题 C: 进制转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题 C: 进制转换

时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述

将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。

输入

多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数)

输出

每行输出对应的二进制数。

样例输入

985
211
1126

样例输出

1111011001
11010011
10001100110
思路

借鉴 此篇文章

此题值得细细揣摩,很经典的问题。

代码

#include<cstdio>
#include<cstring>
int main(){
char a[100];
int b[100];
while(scanf("%s",a)!=EOF){
int len=strlen(a);
for(int i=0;i<len;i++){
b[i]=a[i]-'0';
}
int num[100],i=0,k=0,n=0;
while(i<len){
num[k]=(b[len-1]%2);
k++;
int w=0;
for(int j=i;j<len;j++){
int temp=b[j];
b[j]=(b[j]+w)/2;
if(temp%2==1){
w=10;
}
else w=0;
}
if(b[i]==0) i++;
}
for(int i=k-1;i>=0;i--) printf("%d",num[i]);
printf("n");
}
}

最后

以上就是喜悦月饼为你收集整理的《算法笔记》3.5小节——入门模拟->进制转换 问题 C: 进制转换的全部内容,希望文章能够帮你解决《算法笔记》3.5小节——入门模拟->进制转换 问题 C: 进制转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部