小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;
}

 

posted @ 2022-09-20 22:59  老程序员111  阅读(23)  评论(0)    收藏  举报