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

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

例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”,也是右对齐到。

解题思路:

  #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

这段代码实现了一个支持不同进制转换的计算器。程序从标准输入读取转换请求,逐个处理每个请求,进行数字转换并输出结果。代码结构清晰,主要包含以下几个部分:

  • 头部包含必要的库和头文件
  • 主函数实现进制转换的逻辑
  • 辅助函数b2ten用于将源进制数转换为十进制数
  • 输入处理与输出格式化
  • 错误处理机制
  • 程序支持进制转换之间的切换,输入数据经过转换后会右对齐到7位显示,超过7位则输出"ERROR"。代码注重处理细节,如字符范围判断和结果反转确保显示正确。

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

    你可能感兴趣的文章
    ny540 奇怪的排序 简单题
    查看>>
    NYOJ 1066 CO-PRIME(数论)
    查看>>
    NYOJ 737:石子合并(一)(区间dp)
    查看>>
    nyoj 91 阶乘之和(贪心)
    查看>>
    nyoj------203三国志
    查看>>
    NYOJ-525 一道水题
    查看>>
    nyoj58 最少步数
    查看>>
    N皇后问题
    查看>>
    OAuth 2.0 MAC Tokens
    查看>>
    OAuth 及 移动端鉴权调研
    查看>>
    OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
    查看>>
    OAuth2 Provider 项目常见问题解决方案
    查看>>
    OAuth2 vs JWT,到底怎么选?
    查看>>
    Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>