博客
关于我
例5006 计算器设计
阅读量:267 次
发布时间:2019-03-01

本文共 1719 字,大约阅读时间需要 5 分钟。

例5006 计算器设计

Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others)

Total Submissions: 62 Accepted Submissions: 44
Problem Description
Really Neato计算器公司最近邀请你的团队为他们设计一款超级Neato一代计算器。作为计算机科学家,你建议该计算器能够在各种进制之间进行转换。他们认为这是一个很好的想法,并要求你的团队先给出实现进制转换的算法原型。公司经理告诉你,该计算器应该具有以下一些特征:
(1)可以显示7位;
(2)按键除了数字0到9外,还包括大写字母A到F;
(3)支持2~16进制。

Input

输入文件中的每行为一个进制转换,包括3个数,第1个数是原进制下的一个整数,第2个数就是原进制,第3个数是转换后的进制。这3个数的两边可能有一个或多个空格。输入数据一直到文件结尾。

Output

实现所有的进制转换,转换后的数右对齐到7位显示。如果转换后的数的位数太多,超过7位,则输出“ERROR”,也是右对齐到。

Sample Input

1111000 2 10
1111000 2 16
2102101 3 10
2102101 3 15
12312 4 2
1A 15 2
1234567 10 16
ABCD 16 15
Sample Output
120
78
1765
7CA
ERROR
11001
12D687
D071

解题思路:

#include 
#include
long b2ten(char *x,int b);int main(){ char srcnum[10],destnum[10],temp[10]; char error[10] = "ERROR"; int src,dest,j; long num; while(~scanf("%s %d %d",srcnum,&src,&dest)) { num = b2ten(srcnum,src); if(dest==10) { if(num>9999999) printf("%7s\n",error); else printf("%7ld\n",num); } else { j = 0; while(num) { if(num%dest<10) destnum[j++] = num%dest + '0'; else { switch(num%dest) { case 10:destnum[j++] = 'A';break; case 11:destnum[j++] = 'B';break; case 12:destnum[j++] = 'C';break; case 13:destnum[j++] = 'D';break; case 14:destnum[j++] = 'E';break; case 15:destnum[j++] = 'F';break; } } num /= dest; } destnum[j] = '\0'; if(strlen(destnum)>7) { printf("%7s\n",error); } else { int i = 0; for(int k = j-1;k>=0;k--) { temp[i++] = destnum[k]; } temp[i] = '\0'; printf("%7s\n",temp); } } } return 0;}long b2ten(char *x,int b){ int ret = 0; for(int i = 0;i

转载地址:http://jcsa.baihongyu.com/

你可能感兴趣的文章
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
MySQL 导出数据
查看>>
mysql 将null转代为0
查看>>
mysql 常用
查看>>
MySQL 常用列类型
查看>>
mysql 常用命令
查看>>
Mysql 常见ALTER TABLE操作
查看>>
MySQL 常见的 9 种优化方法
查看>>
MySQL 常见的开放性问题
查看>>
Mysql 常见错误
查看>>
mysql 常见问题
查看>>
MYSQL 幻读(Phantom Problem)不可重复读
查看>>
mysql 往字段后面加字符串
查看>>
mysql 快照读 幻读_innodb当前读 与 快照读 and rr级别是否真正避免了幻读
查看>>
MySQL 快速创建千万级测试数据
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>
MySql 手动执行主从备份
查看>>
Mysql 批量修改四种方式效率对比(一)
查看>>