#T0060. [NOIP2000 提高组] 进制转换

0

[NOIP2000 提高组] 进制转换

题目描述

我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所处位置为指数,以 10 为底数的幂之和的形式。例如 123 可表示为 1×102+2×101+3×1001\times 10^2+2\times 10^1+3\times 10^0 这样的形式。

与之相似的,对二进制数来说,也可表示成各个数位上数字乘以 2 的若干次幂之和的形式。

一般地,对一个基数 R,R 的 R 次幂排列为 R^0,R^1,R^2,…。而一个 R 进制数就要在各位上选用 0 到 R−1 的数字。

但这里我们要介绍的是一种“负进制”。对于一个负基数 -R,我们称它为 -R 进制。此时,一个数在 -R 进制下的各位数字仍需满足 0≤d≤R−1。例如对 -2 进制(二进制)来说,各位数字只能取 0、1;对 -16 进制来说,各位数字可取 0 到 9 以及 A 到 F。

现在给定一个十进制整数 N 和一个负整数 R,请你编写程序,将 N 转换为以 R 为基数的负进制表示。

输入格式

一行两个整数,N 和 R。32768N32768-32768\le N\le 3276816R2-16\le R\le -2

输出格式

输出这个负进制数(字母用大写),并在同一行输出该数的进制形式 (baseR)。参见样例。数据保证结果中不产生前导零(结果为 0 时输出单个 0)。

样例输入 #1

28800 -16

样例输出 #1

28800=19180(base-16)

样例输入 #2

-20000 -2

样例输出 #2

-20000=1111011000100000(base-2)

数据范围

32768N32768-32768\le N\le 32768R{2,3,4,,16}R\in\{-2,-3,-4,\dots,-16\}