小a的计算器
【题目描述】
小a的数学基础实在太差了,以至于他只会用计算器算数。他的计算器比较特殊,只有+,−,×,/(即加减乘除)四种运算。
经过一番周折,小a终于算出了他想要的数,但是他却忘记了最初的数是什么。不过幸运的是他记下了整个操作序列,他想请你帮他算出最初的数【输入描述】
第一行两个整数n,X,分别表示操作次数和最终的数
接下来n行表示操作序列,每行两个数opt,x
若opt=1,则表示将当前数加x
若opt=2,则表示将当前数减x
若opt=3,则表示将当前数乘x
若opt=4,则表示将当前数除以x【输出描述】
一个整数表示最初的数
【样例】
示例1
输入
4 6
1 3
2 1
3 3
4 2
输出
2示例2
输入
3 292
3 2
4 3
4 3
输出
1314
思路:倒序模拟即可
【源代码】
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<deque>
#include<vector>
#include<set>
#include<map>
#define PI acos(-1.0)
#define E 1e-6
#define INF 0x3f3f3f3f
#define N 1001
#define LL long long
const int MOD=998244353;
const int dx[]={-1,1,0,0};
const int dy[]={0,0,-1,1};
using namespace std;
LL a[N],b[N];
int main(){
int n;
LL x;
cin>>n>>x;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i];
for(int i=n;i>=1;i--){
switch(a[i]){
case 1:x-=b[i];break;
case 2:x+=b[i];break;
case 3:x/=b[i];break;
case 4:x*=b[i];break;
}
}
cout<<x<<endl;
return 0;
}

浙公网安备 33010602011771号