校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
题目描述
对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。 例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。
输入描述:
一个1000位(即10^999)以内的十进制数。
输出描述:
输入的十进制数的二进制逆序数。
示例1
输入
173
输出
181
#include<bits/stdc++.h>
using namespace std;
/*
m为当前进制,n为要转换的进制
整个过程类似于10进制到二进制转换的手算过程,取余数-除-取余数-除......
*/
string trans(int m, string a,int n){
int len = a.size(),i,j,k,t;
string b = "";
for(i = 0; i < len;){
k = 0;
for(j = i; j &l