标签:输出指令 map bsp oid 过程 problem 第一个 radix 变量
#include <iostream> #include <cstdio> #include <map> #include <cstring> #include <vector> #include <algorithm> #define inf 0x3f3f3f3f using namespace std; typedef long long ll; int n,sta,r = 10; char ic[36]; int ci[300]; ll num; char s[10],d[70]; void init() { for(int i = 0;i < 10;i ++) { ic[i] = ‘0‘ + i; ci[i + ‘0‘] = i; } for(int i = 10;i < 36;i ++) { ic[i] = i - 10 + ‘A‘; ci[i - 10 + ‘A‘] = i; } } void print(ll k,int ra) { if(k / ra) print(k / ra,ra); printf("%c",ic[k % ra]); } ll radix(char *k,int ra) { ll sum = 0; for(int i = 0;k[i];i ++) { sum = sum * ra + ci[k[i]]; } return sum; } int main() { init(); scanf("%d",&n); for(int i = 0;i < n;i ++) { scanf("%s",s); if(s[0] == ‘N‘) { scanf("%s",d); ll t = radix(d,r); if(sta == 0) num = t; else if(sta == 1) num += t; else if(sta == 2) num -= t; else if(sta == 3) num *= t; else if(sta == 4) num /= t; else if(sta == 5) num %= t; } else if(s[0] == ‘A‘) { sta = 1; } else if(s[0] == ‘S‘) { sta = 2; } else if(s[0] == ‘M‘) { if(s[1] == ‘U‘) { sta = 3; } else if(s[1] == ‘O‘) { sta = 5; } } else if(s[0] == ‘D‘) { sta = 4; } else if(s[0] == ‘C‘) { if(s[1] == ‘L‘) { sta = 0; } else { scanf("%d",&r); } } else if(s[0] == ‘E‘) { print(num,r); putchar(‘\n‘); } } }
标签:输出指令 map bsp oid 过程 problem 第一个 radix 变量
原文地址:https://www.cnblogs.com/8023spz/p/10390280.html