博客
关于我
例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/

    你可能感兴趣的文章
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
    查看>>
    NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
    查看>>
    NLP学习笔记:使用 Python 进行NLTK
    查看>>
    NLP的神经网络训练的新模式
    查看>>
    NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
    查看>>
    NLP:使用 SciKit Learn 的文本矢量化方法
    查看>>
    Nmap扫描教程之Nmap基础知识
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>