在这道题中,我们需要对负数求解,和之前将十进制数转为二进制不同的是,余数可能会出现负数的情况,所以我们只需要对负余数进行处理即可。
我们首先要知道c++中对负数取余的计算方式:
|小| % |大| = |小| 符号同前
|大| % |小| = |余| 符号同前
在对-2进行取余的过程中只会存在一种-1为余数的情况,其他为0或1我们不用进行处理。
如下面的例子:-3 / -2 = 1 ......-1
我们从结果中借一位,即将1变成2,将余数加2变成1,完美解决问题。
#include <iostream>
us...