P1008 [2000年NOIP提高组] 进制转换
我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以为底数的幂之和的形式。例如,可表示为这样的形式。与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如果是以或为基数,则需要用到的数码为。例如,当时,所需用到的数码是和,这与其是或无关。如果作为基数的数绝对值超过,则为了表示这些数码,通常使用英文字母来表示那些大于的数码。例如对进制数来说,用表示,用表示,用表示,用表示,用表示,用表示。在负进制数中是用作为基数,例如(+进制)相当于(进制),并且它可以被表示为的幂级数的和数: 问题求解: 设计一个程序,读入一个十进制数的基数和一个负进制数的基数,并将此十进制数转换为此负进制下的数:
输入的每行有两个输入数据。 第一个是十进制数;第二个是负进制数的基数。输入的每行有两个输入数据。 第一个是十进制数;第二个是负进制数的基数。
结果显示在屏幕上,相对于输入,应输出此负进制数及其基数,若此基数超过,则参照进制的方式处理。
每个测试数据不超过组。不要单纯地用普通进制转换的方法。