必须注意的是,计算器清零可能发生在运算指令之后,此时运算模式和历史数值都须清空,而进制不变!

运算数值最大值小于 2^63 ,所以存储采用十进制 long long int 。将输入字符串由指定进制转换成10进制运算,输出时转换成指定进制后输出。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef long long LL;
LL GOD;
int require,base;
LL transform(char *num)
{int i;LL sum=0,nowbase=1;for(i=strlen(num)-1;i>=0;i--){if(isdigit(num[i]))sum+=(num[i]-'0')*nowbase;elsesum+=(num[i]-'A'+10)*nowbase;nowbase*=base;}return sum;
}
int notransform(char *num)
{int sp=0;sscanf(num,"%d",&sp);return sp;
}
char* retransform(LL num)
{static char ans[100]={0};int index=1;if(!num)ans[index++]='0';while(num){int temp=(num%base);if(temp<10)ans[index++]=temp+'0';elseans[index++]=temp-10+'A';num/=base;}ans[0]=index-1;return ans;
}
void runorder(char *str)
{char Torder[9][10]={"NUM","ADD","SUB","MUL","DIV","MOD","CHANGE","EQUAL","CLEAR"};char sp[10];sscanf(str,"%s",sp);char spnum[100]={0};if(strlen(sp)!=strlen(str))sscanf(str,"%*s%s",spnum);int i,j;char *temp=NULL;for(i=0;i<9;i++){if(!strcmp(sp,Torder[i])){switch(i){case 0:if(require==0)GOD=transform(spnum);else{if(require==1)GOD+=transform(spnum);if(require==2)GOD-=transform(spnum);if(require==3)  GOD*=transform(spnum);if(require==4) GOD/=transform(spnum);if(require==5) GOD%=transform(spnum);require=0;}break;case 1:require=1;break;case 2:require=2;break;case 3:require=3;break;case 4:require=4;break;case 5:require=5;break;case 6:base=notransform(spnum);break;case 7:  temp=retransform(GOD);for(j=temp[0];j>=1;j--)putchar(temp[j]);putchar('\n');break;case 8:GOD=0;require=0;}}}
}
int main(int argc,char **argv)
{int cnt;scanf("%d",&cnt);base=10,require=0;while(cnt--){char order[30];scanf("%*c%[^\n]",order);runorder(order);}return EXIT_SUCCESS;
}

END

蓝桥杯:历年试题PREV-55—小计算器相关推荐

  1. 蓝桥杯历年试题汇总 C/C++ B组

    B组 2012 第三届 微生物增殖 古堡算式 海盗比酒量 奇怪的比赛 方阵旋转  大数乘法 放旗子 密码发生器    夺冠概率 取球博弈             2013 第四届 高斯日记 马虎的算式 ...

  2. 蓝桥杯研究生c语言试题答案,蓝桥杯试题_蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊 高职高专组C语言的 有的话麻烦你发给我 万分感谢_淘题吧...

    ❶ 蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊. 高职高专组C语言的 有的话麻烦你发给我 万分感谢 我有真题.但是老师没给答案 ❷ 为什么蓝桥杯试题集评测老是错 楼上的网友说的很简单,实际上因为每 ...

  3. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  4. 蓝桥杯历年真题,来,看看

    .标题: 世纪末的星期 曾有邪教称1999年12月31日是世界末日.当然该谣言已经不攻自破. 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月3 ...

  5. [蓝桥杯][历届试题]国王的烦恼(反向+并查集)

    问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...

  6. 蓝桥杯 - 历届试题 - 日期问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...

  7. 二分搜索,POJ2456,NYOJ 914, 区间移位-蓝桥杯-历届试题

    二分搜索是不断缩减可能解的范围来得到最优解, 因为每次是折半, 所以指数爆炸有多快,这个效率就有多高 POJ2456为例, 传送门 简而言之, 就是将牛之间的距离的最小值最大化. #include&l ...

  8. 蓝桥杯c语言试题幸运数,蓝桥杯  历届试题 幸运数  dfs

    时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...

  9. 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...

    Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...

最新文章

  1. python-----利用filecmp删除重复文件
  2. 最长回文子串 hihocode 1032 hdu 3068
  3. 20051008:看了AppleSeed,领悟到了一个道理:
  4. Flink从入门到精通100篇(十)-双亲委派模型与 Flink 的类加载策略
  5. python微信聊天机器人_python实战项目,使用itchat模块制作微信聊天机器人
  6. nginx ngx_http_mirror_module模块
  7. 2008年3月移动开发Webcast预告
  8. 基于JAVA+SpringMVC+MYSQL的酒店客房管理系统
  9. 中国公司又称雄国际AI大赛,IARPA人脸识别挑战赛依图夺冠
  10. 2020 ECCV 目标检测冠军
  11. 全网首发:为什么依赖库编译时加了-fPIC,还是提示依赖库要使用-fPIC?
  12. monaco-editor浏览器中的网页代码编辑器在项目中集成
  13. 流程图基本图形的含义
  14. 如何获取每周的星期一和星期天的日期
  15. PD,LGD,EAD
  16. C++ WA, 超时,爆栈错误总结
  17. average函数例子c语言数组,average函数(average函数使用例子)
  18. 《铁齿铜牙》主题曲--- 歌词
  19. iOS App集成Apple Pay教程(附示例代码)
  20. Android中实现「类方法指令抽取方式」加固方案原理解析

热门文章

  1. 用Comparator接口进行排序 --java
  2. App打开小程序,小程序打开App
  3. MySQL的循环语句使用总结
  4. vue中使用$refs获取不到DOM元素
  5. 保险保费基本计算规则
  6. 合格的MySQL管理员必备备份恢复与日志管理,对MySQL进行简单的操作
  7. 2020计算机专业保研夏令营面经:北航计算机
  8. JAVA垃圾回收-可达性分析算法
  9. 【OpenCV】人脸检测和识别
  10. 车牌识别EasyPR(3)——SVM模型判断车牌