[数论] [洛谷] P1017 负进制转换

2019-04-14 18:44发布

负进制转换过程与正进制相同 不断取模向下计算 但是负进制在模的过程中会模出负数 若为负数 该步需要特殊操作 ans = mode[a - (a / b + 1) *  b] + ans;             a = a / b + 1; #include using namespace std; typedef long long ll; int main() { string mode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string ans; ll a, b; cin>>a>>b; ll ta = a; while(a) { if(a % b >= 0) { ans = mode[a % b] + ans; a /= b; } else { ans = mode[a - (a / b + 1) * b] + ans; a = a / b + 1; } } cout<