蓝桥杯:历年试题PREV-55—小计算器
必须注意的是,计算器清零可能发生在运算指令之后,此时运算模式和历史数值都须清空,而进制不变!
运算数值最大值小于 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—小计算器相关推荐
- 蓝桥杯历年试题汇总 C/C++ B组
B组 2012 第三届 微生物增殖 古堡算式 海盗比酒量 奇怪的比赛 方阵旋转 大数乘法 放旗子 密码发生器 夺冠概率 取球博弈 2013 第四届 高斯日记 马虎的算式 ...
- 蓝桥杯研究生c语言试题答案,蓝桥杯试题_蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊 高职高专组C语言的 有的话麻烦你发给我 万分感谢_淘题吧...
❶ 蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊. 高职高专组C语言的 有的话麻烦你发给我 万分感谢 我有真题.但是老师没给答案 ❷ 为什么蓝桥杯试题集评测老是错 楼上的网友说的很简单,实际上因为每 ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 蓝桥杯历年真题,来,看看
.标题: 世纪末的星期 曾有邪教称1999年12月31日是世界末日.当然该谣言已经不攻自破. 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月3 ...
- [蓝桥杯][历届试题]国王的烦恼(反向+并查集)
问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...
- 蓝桥杯 - 历届试题 - 日期问题
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...
- 二分搜索,POJ2456,NYOJ 914, 区间移位-蓝桥杯-历届试题
二分搜索是不断缩减可能解的范围来得到最优解, 因为每次是折半, 所以指数爆炸有多快,这个效率就有多高 POJ2456为例, 传送门 简而言之, 就是将牛之间的距离的最小值最大化. #include&l ...
- 蓝桥杯c语言试题幸运数,蓝桥杯 历届试题 幸运数 dfs
时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...
- 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...
Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...
最新文章
- python-----利用filecmp删除重复文件
- 最长回文子串 hihocode 1032 hdu 3068
- 20051008:看了AppleSeed,领悟到了一个道理:
- Flink从入门到精通100篇(十)-双亲委派模型与 Flink 的类加载策略
- python微信聊天机器人_python实战项目,使用itchat模块制作微信聊天机器人
- nginx ngx_http_mirror_module模块
- 2008年3月移动开发Webcast预告
- 基于JAVA+SpringMVC+MYSQL的酒店客房管理系统
- 中国公司又称雄国际AI大赛,IARPA人脸识别挑战赛依图夺冠
- 2020 ECCV 目标检测冠军
- 全网首发:为什么依赖库编译时加了-fPIC,还是提示依赖库要使用-fPIC?
- monaco-editor浏览器中的网页代码编辑器在项目中集成
- 流程图基本图形的含义
- 如何获取每周的星期一和星期天的日期
- PD,LGD,EAD
- C++ WA, 超时,爆栈错误总结
- average函数例子c语言数组,average函数(average函数使用例子)
- 《铁齿铜牙》主题曲--- 歌词
- iOS App集成Apple Pay教程(附示例代码)
- Android中实现「类方法指令抽取方式」加固方案原理解析