CSU 1267: Operation(模拟啊 )
来源:互联网 发布:免费工资管理软件 编辑:程序博客网 时间:2024/05/21 18:36
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1267
Description
现在有26个变量,分别用a~z表示,它们的初值均为0。接下来一共有N个操作,这些操作一共分为如下6类:
(1) mov a,b : 将变量b的值赋给a,相当于a = b,其中a、b泛指两个变量。
(2) mov a,10 : 将10赋给a,相当于a = 10,其中a泛指某个变量,10泛指某个不大于20的正整数。
(3) add a,b : 计算a + b的值并将其赋给变量a,相当于a = a + b,其中a、b泛指某两个变量。
(4) sub a,b : 计算a – b的值并将其赋给变量a,相当于a = a – b,其中a、b泛指某两个变量。
(5) add a,10 : 计算a + 10的值并将其赋给变量a,相当于a = a + 10,其中a泛指某个变量,10泛指某个不大于20的正整数。
(6) sub a,10 : 计算a – 10的值并将其赋给变量a,相当于a = a – 10,其中a泛指某个变量,10泛指某个不大于20的正整数。
(7) print a : 用一行输出变量a的值,其中a泛指某个变量。
你需要依次执行这N个操作,并且当遇到第(7)类操作时,按要求输出该变量的值。
Input
输入数据的第一行包含一个整数N (1 <= N <= 10^5),表示一共有N个操作。
接下来一共有N行,每行均包含一个形如上述的操作。
Output
对于每个第(7)类操作,用一行输出一个整数,表示该变量的值。
数据保证在运算过程中每个变量的值均不会超过10^9。
Sample Input
10print cadd c,10mov a,cadd a,aprint asub a,5sub b,aprint bsub c,bprint c
Sample Output
020-1525
HINT
Source
中南大学第七届大学生程序设计竞赛-热身赛
代码如下:
#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;#include <iostream>#include <string>string ss;int main(){ int n; int f[27]; char s[10]; while(~scanf("%d",&n)) { memset(f,0,sizeof(f)); memset(s,0,sizeof(s)); char a, b; for(int i = 0; i < n; i++) { cin>>ss; if(ss == "print") { cin>>a; printf("%d\n",f[a-'a']); } else if(ss == "mov") { cin>>a>>b>>s; if(s[0]>='0' && s[0] <= '9') { int num = 0; int len = strlen(s); for(int j = 0; j < len; j++) { num = num*10+s[j]-'0'; } f[a-'a'] = num; } else f[a-'a'] = f[s[0]-'a']; } else if(ss == "add") { cin>>a>>b>>s; if(s[0]>='0' && s[0] <= '9') { int num = 0; int len = strlen(s); for(int j = 0; j < len; j++) { num = num*10+s[j]-'0'; } f[a-'a'] += num; } else f[a-'a'] += f[s[0]-'a']; } else if(ss == "sub") { cin>>a>>b>>s; if(s[0]>='0' && s[0] <= '9') { int num = 0; int len = strlen(s); for(int j = 0; j < len; j++) { num = num*10+s[j]-'0'; } f[a-'a'] -= num; } else f[a-'a'] -= f[s[0]-'a']; } } } return 0;}
- CSU 1267: Operation(模拟啊 )
- csu oj K swap operation 模拟
- CSU 1269: Morse Code Wristwatch(模拟啊 )
- CSU 1674 K swap operation
- CSU 1202 Stone-scissors-cloth (模拟)
- CSU 1203 Super-increasing sequence (模拟)
- csu oj 1031 Real Numbers(模拟)
- csu 1716 Morse(模拟,字符串处理)
- CSU 1312 榜单(模拟)
- CSU 1093 Caps Lock (贪心+模拟)
- 文章标题 CSU 1856: Sokoban(模拟)
- CSU 1019: Simple Line Editor(模拟)
- HDU 4364 Matrix operation(模拟)
- CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1339: 最后一滴血(模拟啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1555 splay模拟
- CSU 1711 Kinfolk【模拟】
- csu 1329 一行盒子(双向链表模拟)
- java Annotation(注解)使用
- Oracle 相关知识点
- php批量建表:对分表有用
- JBPM框架全称Java Business Process Management(业务流程管理框架)
- 黑马程序员_01新的开始,新的起点!
- CSU 1267: Operation(模拟啊 )
- 【大话】之观察者模式
- hge 的一些笔记
- linux下mysql连接异常
- thrift总结(python)
- CSU 1268 1268: Pingpang Balls(数学啊 )
- unity3d NGUI 按钮的图片未点击却跳回默认的问题
- Transformer入门教程(四)Generate Categories报错TR2703
- 自己做的一个后台管理员登陆界面 .cshtml