题目45:进制转换
来源:互联网 发布:淘宝可以卖酒吗 编辑:程序博客网 时间:2024/05/21 19:34
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。
http://ac.jobdu.com/problem.php?cid=1040&pid=44
题目描述:
- 输入:
多组数据,每行为一个长度不超过30位的十进制非负整数。
(注意是10进制数字的个数可能有30个,而非30bits的整数)
- 输出:
每行输出对应的二进制数。
- 样例输入:
0138
- 样例输出:
01111000
// 题目45:进制转换.cpp: 主项目文件。#include "stdafx.h"#include <cstdio>#include <cstring>struct bigInt{char str[203];void Init(char *nStr){strcpy(str,nStr);}bigInt operator /(int k){bigInt res;int t=0,cnt=0;bool flag=true;for(int i=0;str[i];i++){if(flag){if(t*10+(str[i]-'0')>=2){flag=false;res.str[cnt++]=(t*10+(str[i]-'0'))/k+'0';t=(t*10+(str[i]-'0'))%k;}elset=str[i]-'0';}else{res.str[cnt++]=(t*10+(str[i]-'0'))/k+'0';t=(t*10+(str[i]-'0'))%k;}}if(cnt==0)res.str[cnt++]='0';res.str[cnt]='\0';return res;}void changeToBit(){bigInt res,tmp;tmp.Init(str);if(strcmp(tmp.str,"0")==0){res.Init("0");return;}int cnt=0;while(strcmp(tmp.str,"0")!=0){str[cnt++]=(tmp.str[strlen(tmp.str)-1]-'0')%2+'0';tmp=tmp/2;}str[cnt]='\0';}};int main(){ char nStr[33];while(scanf("%s",nStr)!=EOF){bigInt res;res.Init(nStr);res.changeToBit();for(int i=strlen(res.str)-1;i>=0;i--)printf("%c",res.str[i]);printf("\n");} return 0;}
- 题目45:进制转换
- 45-题目1138:进制转换
- 题目62:进制转换
- 题目1140: 进制转换
- 题目1138:进制转换
- 题目1080:进制转换
- 题目1080:进制转换
- 题目1138:进制转换
- 题目1080:进制转换
- 题目1138:进制转换
- 题目1080:进制转换
- 题目1138:进制转换
- HDUOJ 进制转换 题目2031
- 62-题目1080:进制转换
- 九度题目1138进制转换
- 第十二周oj题目进制转换
- 第十四周oj题目进制转换
- 有趣的题目(进制转换)
- 解决Tomcat SocketException:select failed问题
- Eclipse启动Tomcat超时自动Down掉解决办法
- 博客搬家
- Ubuntu12.04下安装Maven环境
- MFC2008SP1 : AFX_GLOBAL_DATA 结构体
- 题目45:进制转换
- C++编译连接过程
- USACO:PROB The Castle
- DBA30问之CHAR(N),NCHAR(N),VARCHAR(N),NVARCHAR(N)四种类型之间的区别
- 商务饭局常识
- 在职一座山,离职一座碑
- SqlParameter的作用与用法
- 题目46:八进制
- 怎么说更重要