對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。 例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。
乙個1000位(即10^999)以內的十進位制數。
輸入的十進位制數的二進位制逆序數。
示例1
複製
173
#include
using namespace std;
string switch1(int a,int b,string c)//轉換函式
int length1=c.length();
string d="";
for(int i=0;iint j=0;
for(int k=i;kint q=(j*a+c[k]-'0')%b;//逐位模取,和小學除法一樣
c[k]=(j*a+c[k]-'0')/b+'0';//將除過的數字放在元素中
j=q;//將模餘的數字留給下一位
d+=char(j+'0');
if(c[i]=='0')//說明這一位沒有數字了,下次迴圈將從下一位開始進行
i++;
return d;
int main()
string c;
while(cin>>c)
string a=switch1(10,2,c);
string b=switch1(2,10,a);
reverse(b.begin(),b.end());//反轉陣列
coutreturn 0;
機試 10進製 VS 2進製
對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。乙個1000位 即10 999 以內的...
問題 F 10進製 VS 2進製
對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們稱b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。乙個1000位 即10 999 以內的...
清華考研複試上機 10進製 VS 2進製
對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。乙個1000位 即10 999 以內的...