#include #include #include using namespace std; int from(string s, int radix) { int n = 0, len = s.length(); for(int i = 0; i s; string m; int i = 0; for(;n;i++) { if(!(i&1)) s.push_back(n % radix); else s.push_back(-(n % radix)); n /= radix; } int len = s.size(); for(int i = 0; ; i++) { int dif = 0; if(!(i&1)) { if(s[i] >= radix) { s[i] = s[i]-radix; dif = -1; } } else { if(s[i] < 0) { s[i]=radix+s[i]; dif = 1; } } if(dif) { if(i= radix) { s[i] = (s[i]-'0')-radix+'0'; dif = 1; } } else { if(s[i]-'0' < 0) { s[i]=radix-(s[i] - '0')+'0'; dif = -1; } } if(dif) { if(i> c; switch(c) { case 't': cin.ignore(2); cin >> radix >> n; //base = -radix //cout << n << " (base 10) to base " << -radix << "\n"; cout << to(n, radix) << "\n"; break; case 'f': cin.ignore(4); cin >> radix >> s; //cout << n << " (base " << -radix << ") to base 10\n"; cout << from(s, -radix) << "\n"; break; case 'e': fut = false; break; } } }