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