題目描述
有一個介於0和1之間的實數,類型爲double,返回它的二進制表示。如果該數字無法精確地用32位以內的二進制表示,返回“Error”。
給定一個double num,表示0到1的實數,請返回一個string,代表該數的二進制表示或者“Error”。
測試樣例:
0.625
返回:0.101
知道小數如何轉換成二進制就簡單了。
class BinDecimal {
public:
string printBin(double num) {
// write code here
string ans = "";
if(num >= 1)
{
ans += "1";
num -= 1;
}
else
ans += "0";
if(num != 0)
ans += ".";
while(num)
{
num *= 2;
if(num >= 1)
{
ans += "1";
num -= 1;
}
else
{
ans += "0";
}
}
return ans.size() >= 34? "Error" : ans;
}
};