题目链接
题目分析
这道题考察的是负进制转换。
我们都知道,十进制转化为二进制应该不断用原数除以2取余,得到的余数由高位到低位排列则能得到十进制数字在二进制下的数字。
十进制转二进制的代码如下:
1 | int binary[255], cur = 0; |
其中n为十进制下的数字,m为需要转换的进制。
那么当目标进制为负数的时候要注意什么呢?
余数不能为负数。
例如,$(19)_{10}$要转换成$-9$进制。
$19/-9=-2…1$
$-2/-9=1…7$(注意这里不是**$0…-2$**!因为负数不能做余数。)
$1/-9=0…1$(当商为0时计算完成)
代码实现
1 | /* P1017 进制转换 |