博客
关于我
例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 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询数据库所有表的字段信息
查看>>
【Java基础】什么是面向对象?
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>