10進製VS2進製

2021-08-22 02:46:51 字數 849 閱讀 6198

對於乙個十進位制數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 以內的...