题目描述
对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。 例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。
输入描述:
一个1000位(即10^999)以内的十进制数。
输出描述:
输入的十进制数的二进制逆序数。
示例1
输入
复制
173
输出
复制
181
解题思路分析:
从本题的输入描述中,输入为一个1000位(即10^999)以内的十进制数,因此我们无法用一般的int、long、long long等数据类型无内存溢出的将这个输入数据存储下来,因此我们必须采用数组来进行存储输入数据。这样的存储方式同时也带来了一个计算上的问题就是我们怎么样来进行除法和取模运算?
下面举一个简单的例子来进行理解:
下面我们以173为例子进行进制转换的分解,首先大家将173看成是data[3]数组里面的三个数字。
下面图片的内容可以结合下文代码中的conversion()函数来进行理解