试题 历届试题

PREV-55 小计算器

问题描述

模拟程序型计算器,依次输入指令,可能包含的指令有

1. 数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数
  2. 运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余
  3. 进制转换指令:‘CHANGE K’,将当前进制转换为K进制(2≤K≤36)
  4. 输出指令:‘EQUAL’,以当前进制输出结果
  5. 重置指令:‘CLEAR’,清除当前数字

指令按照以下规则给出:
  数字,运算指令不会连续给出,进制转换指令,输出指令,重置指令有可能连续给出
  运算指令后出现的第一个数字,表示参与运算的数字。且在该运算指令和该数字中间不会出现运算指令和输出指令
  重置指令后出现的第一个数字,表示基础值。且在重置指令和第一个数字中间不会出现运算指令和输出指令
  进制转换指令可能出现在任何地方

运算过程中中间变量均为非负整数,且小于2^63。
  以大写的’A’'Z’表示1035

输入格式

    第1行:1个n,表示指令数量

第2…n+1行:每行给出一条指令。指令序列一定以’CLEAR’作为开始,并且满足指令规则

输出格式

    依次给出每一次'EQUAL'得到的结果

样例输入

7
CLEAR
NUM 1024
CHANGE 2
ADD
NUM 100000
CHANGE 8
EQUAL

样例输出

2040

想法:
一题很基本的模拟题,但是本身所存在的坑洞还是有点多的,最主要的是要细心去看题目,还是很适合我这种比较粗心的人拿来练习的。题目大概的意思就是模拟一个可以输出转换进制计数器,要求计算加减乘除以及取余,输入会有不同的进制数,所以得在输入的时候判断进制转化为10进制来进行计算。
因此只要判断输入的条件为什么来进行基本的操作就行,但要注意 CLEAR 会默认将之前的所有操作除了进制以外全部删除,还有一些例如判断的进制超过10进制用大写字母,输出为0的特殊判断等小坑洞。

代码:

#include<iostream>
#include<string>
#include<map>
using namespace std;
typedef long long ll;
ll num=0,in=10,fuck=0;
map<char,int> ma;
string age,addoj;
char book[100];
ll zhuang(){ll bei=1;ll chun=0;for(ll i=age.size()-1;i>=0;i--){chun+=ma[age[i]]*bei;bei*=in;} return chun;
}
void num1(){cin>>age;if(fuck==0){num=zhuang();fuck=1;}else{if(addoj=="ADD"){num+=zhuang();}if(addoj=="SUB"){num-=zhuang();}if(addoj=="MUL"){num*=zhuang();}if(addoj=="DIV"){num/=zhuang();}if(addoj=="MOD"){num%=zhuang();}}
}
void out(){string sb="";ll num1=num;if(num1==0){cout<<"0"<<endl;return;}else{while(num1){sb=book[num1%in]+sb;num1/=in;}cout<<sb<<endl;}
}
int main(){ll sum,src;string s;cin>>sum;for(ll i=0;i<=9;i++){book[i]=i+'0';    ma[i+'0']=i;}for(char i='A';i<='Z';i++){book[i-'A'+10]=i;ma[i]=10-'A'+i;}while(sum--){cin>>s;if(s=="CLEAR"){num=0;fuck=0;}else if(s=="NUM"){num1();}else if(s=="CHANGE"){cin>>src;in=src;}else if(s=="EQUAL"){out();}else if(s=="ADD"''s=="SUB"''s=="MUL"''s=="DIV"''s=="MOD"){addoj=s;}}return 0;
}

蓝桥学习 PREV-55相关推荐

  1. [网络安全学习篇55]:SQL自动化注入

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  2. spring mvc学习(55):简单异常处理二

    引入jar包 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http: ...

  3. 学习笔记(55):Python实战编程-Scrollbar

    立即学习:https://edu.csdn.net/course/play/19711/343118?utm_source=blogtoedu 1.滚动条ScrollBar: 当列表内容项的内容过多时 ...

  4. 深度学习第55讲:图像的神经风格迁移

    所谓图像的神经风格迁移(Style Transfer),就是指在给定图像A和图像B的情况下,通过神经网络将这两张图像转化为C,且C同时具有图像A的内容和图像B的风格.比如下图左边两张输入图片:一张图像 ...

  5. android学习笔记55——ContentProvider_2

    实现ContentProvider 创建ContentProvider的步骤: 1.开发一个ContentProvider的子类,该子类需要实现增.删.改.查等方法: 2.在AndroidMainfe ...

  6. java学习(55):定义一个抽象类的继承

    不同的是定义一个抽象类先 //抽象类 public abstract class interface4 { public abstract void fly(); public abstract vo ...

  7. 大数据学习笔记55:搭建HBase环境

    文章目录 一.下载HBase 二.搭建HBase单机版环境 (一)登录私有云ied虚拟机 (二)上传hbase安装包到ied虚拟机 (三)将habase安装包解压到指定目录 (四)编辑hbase配置文 ...

  8. SAS学习笔记55 RTF输出标题级别的设置

    很多人都喜欢将表格的标题通过report中的compute before _page_ 添加到table的前面,但是这种方式并不能直接定义标题的级别,需要后期进行表格的加工. 在使用proc repo ...

  9. 蓝桥学习 PREV-50

    试题 历届试题  PREV-50 对局匹配 ** 问题描述 :** 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手 ...

最新文章

  1. freemarker基本语法及实例
  2. 迁移学习之EfficientNetBX(图像识别)
  3. 032_jdbc-mysql批量操作
  4. VB6 无法加载ieframe.dll,导致不能使用 浏览器控件--(转载)
  5. X权限 gpasswd getent 命令详解
  6. 主机与设备之间文件拷贝的几种方式
  7. android 成长日记 3.关于Activity的用户体验提升办法和使用技巧说明
  8. js、jQuery实现文字上下无缝轮播、滚动效果
  9. 「leetcode」本周小结!(回溯算法系列二)
  10. svn服务器文件保存位置,Windows 部署SVN服务器
  11. HEX BIN互相转换
  12. 西电计算机软件考研,西安电子科技大学软件工程硕士考研
  13. MATLAB中dsolve与syms
  14. 最受DBA欢迎的数据库技术文档-巡检篇
  15. 高德地图 点击获取坐标
  16. 数据库课程设计-在线图书馆
  17. 调用百度API 对文本进行情感倾向分析(舆情分析)
  18. 计算机课程数据库指什么,计算机系课程教学课程数据库应用.doc
  19. side agreement, verbal agreement
  20. JZOJ4829. 独木桥

热门文章

  1. matlab hello world,hello world
  2. C/C++语言入门(精讲系列)——Hello World 你好,世界
  3. 迈向大牛的重要一步——掌握设计模式
  4. 绘图_origin在一个页面上绘制多个图像x1y1和x2y2
  5. 爱因斯坦的数学题(C语言)
  6. 乐视max2 在开发中无法打印某些logcat 解决方案
  7. Mac版本EndNote基本用法
  8. Java学习之编程入门
  9. Android运行项目时提示:No signature of method: build_*.android() is applicable for argument types
  10. 大厂面试 Mysql数据库相关面试题总结