清華考研複試上機 10進製 VS 2進製

2021-08-14 17:27:33 字數 935 閱讀 3889

對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。     例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。

乙個1000位(即10^999)以內的十進位制數。
輸入的十進位制數的二進位制逆序數。
示例1

173

181
思路:這道題要處理一千位以內的大數字str,但是其實處理起來並不難,因為只有兩個計算,乙個是str = str*2 + c,另乙個是str(餘c) = str / 2。

簡單模擬手動計算既可。

#include #include #include #include #include #include #include #include using namespace std;

string instr;

string outstr;//outstr is reversed

// str = str / 2; return str % 2

int cal(string &str)

return carrior;

}// str = str * 2 + c

void mul(string &str, int carrior)

if(carrior != 0)

}// return str == 0;

bool iszero(const string &str)

return true;

}int main()

int len = outstr.length();

for(int i=len-1; i >= 0; i--)

cout << "\n";

}}

清華考研複試上機 進製轉換

將m進製的數x轉換為n進製的數輸出。輸入的第一行包括兩個整數 m和n 2 m,n 36 下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。輸出x的n進製表示的數。輸入時字母部分為大寫,輸出時為小寫,並且有大資料。示例1 16 10 f 15思路 這個題難就難在有 ...

10進製VS2進製

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