博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
阅读量:6189 次
发布时间:2019-06-21

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

Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 4772   Accepted: 2141

Description

The Really Neato Calculator Company, Inc. has recently hired your team to help design their Super Neato Model I calculator. As a computer scientist you suggested to the company that it would be neato if this new calculator could convert among number bases. The company thought this was a stupendous idea and has asked your team to come up with the prototype program for doing base conversion. The project manager of the Super Neato Model I calculator has informed you that the calculator will have the following neato features:  
  • It will have a 7-digital display. 
  • Its buttons will include the capital letters A through F in addition to the digits 0 through 9. 
  • It will support bases 2 through 16. 

Input

The input for your prototype program will consist of one base conversion per line. There will be three numbers per line. The first number will be the number in the base you are converting from. The second number is the base you are converting from. The third number is the base you are converting to. There will be one or more blanks surrounding (on either side of) the numbers. There are several lines of input and your program should continue to read until the end of file is reached.

Output

The output will only be the converted number as it would appear on the display of the calculator. The number should be right justified in the 7-digit display. If the number is to large to appear on the display, then print ``ERROR'' (without the quotes) right justified in the display.

Sample Input

1111000  2 101111000  2 162102101  3 102102101  3 15  12312  4  2     1A 15  21234567 10 16   ABCD 16 15

Sample Output

120     78   1765    7CA  ERROR  11001 12D687   D071

Source

 >> 

问题链接:。

问题简述:参见上文。

问题分析:每行给出一个数、进制和目标进制,对数进行进制转换,输出一个长度不大于7的值。

一个纯粹进制转换题,需要懂得进制的原理,熟悉atoi()和itoa()的实现过程。

另外需要注意的是,值的范围和输入输出格式。

程序说明:(略)

AC的C语言程序如下:

/* HDU1335 POJ1546 Basically Speaking */#include 
#define LEN 7// 进制转换:将frombase进制的s[]转换为tobase进制,并且输出void changeoutput(char s[], int frombase, int tobase){ long long result = 0; char t[64], *p; int count; // atoi:字符串转换为整数,基数为frombase p = s; while(*p) { result *= frombase; if('0' <= *p && *p <= '9') result += *p - '0'; else if('A' <= *p && *p <= 'F') result += *p + 10 - 'A'; p++; } // itoa:整数转换为字符串,基数为tobase count = 0; while(result) { int val = result % tobase; if(0 <= val && val <= 9) t[count] = val + '0'; else if(10 <= val && val <= 15) t[count] = val - 10 + 'A'; result /= tobase; count++; } // 输出结果 if(count == 0) printf(" 0\n"); else if(count > LEN) printf(" ERROR\n"); else { int i; // 补足空格 for(i=count; i
=0; i--) putchar(t[i]); putchar('\n'); }}int main(void){ int frombase, tobase; char s[1024]; while(scanf("%s%d%d", s, &frombase, &tobase) != EOF) { changeoutput(s, frombase, tobase); } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564569.html

你可能感兴趣的文章
redis 自启脚本
查看>>
加动画喽。。有一次我设定动画的时间不管用。就把设置时间的代码位置调整到最开始。然后就好了。...
查看>>
让ssh跳转支持ipv6
查看>>
Centos6.5 安装 Mysql-5.6.41
查看>>
一周第二次课(12月12日)
查看>>
【后台任务】在线程池线程上运行代码(6)
查看>>
H3CTE讲师分享H3C认证培训实验9 IP基础
查看>>
我的友情链接
查看>>
编码风格之变量的命名规则
查看>>
元数据(MetaData)
查看>>
视频会议、视频聊天、手机视频、跨平台视频如何开发之流程篇
查看>>
配置终端服务和远程桌面服务器身份验证和加密级别
查看>>
Linux Shell脚本测试案例(一)
查看>>
LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义
查看>>
关于分卷压缩文件打不开的问题
查看>>
我的友情链接
查看>>
关于TCP封包、粘包、半包
查看>>
C语言返回值深入研究
查看>>
pydoc用法
查看>>
Wireshark系列之7 利用WinHex还原文件
查看>>