标签:push const ons while panel str 历届试题 算子 clear
上一轮运算的结果,是下一轮运算的第一个算子。进制也是。
#include<iostream> #include<algorithm> #include<string> const long long MAX=2E5+7; using namespace std; long long n,j,res,flag,a[2]; string t; long long change(string t,long long k) { long long e=t.size(); long long ts=0; for(long long i=0;i<e;++i) { if(‘A‘<=t[i]&&t[i]<=‘Z‘) ts=ts*k+t[i]-‘A‘+10; else ts=ts*k+t[i]-‘0‘; } return ts; } string rchange(long long res,long long k) { if(res==0) return "0"; string s; long long r; while(res) { r=res%k; if(r>=10) s.push_back(r+‘A‘-10); else s.push_back(r+‘0‘); res/=k; } reverse(s.begin(),s.end()); return s; } int main() { cin>>n; long long k=10; while(n--) { cin>>t; if(t=="NUM") { cin>>t; if(j) { a[0]=change(t,k);j=0; } else a[1]=change(t,k); if(flag) { switch(flag) { case 1:a[0] = a[0]+a[1];break; case 2:a[0] = a[0]-a[1];break; case 3:a[0] = a[0]*a[1];break; case 4:a[0] = a[0]/a[1];break; case 5:a[0] = a[0]%a[1];break; } flag=0; } } else if(t=="CHANGE") cin>>k; else if(t=="ADD") { flag=1; } else if(t=="SUB") { flag=2; } else if(t=="MUL") { flag=3; } else if(t=="DIV") { flag=4; } else if(t=="MOD") { flag=5; } else if(t=="EQUAL") { cout<<rchange(a[0],k)<<endl; } else if(t=="CLEAR"){ j=1;} } return 0; }
标签:push const ons while panel str 历届试题 算子 clear
原文地址:https://www.cnblogs.com/chrysanthemum/p/12737153.html