任何乙個無限迴圈小數或有限小數都可以表示為分數的形式。
(1)有限小數
假設為a.b1b2b3b4b5
我們可以表示為:
a+(b1b2b3b4b5)/10^5;
(2)無限迴圈小數
假設為a.b1b2b3b4b5b6(c1c2c3c4)
a.b1b2b3b4b5b6(c1c2c3c4) = ab1b2b3b4b5b6.(c1c2c3c4)/10^6; (1)
另ab1b2b3b4b5b6 = x; 0.c1c2c3c4 =y;
對y而言:
0.(c1c2c3c4)= y ;
0.(c1c2c3c4) = c1c2c3c4.(c1c2c3c4)/10^4
即:y×10^4= c1c2c3c4+y;
所以:y = c1c2c3c4/(10^4-1);
再把y帶入到(1)中,即可求得x的表示式:
下一步是怎樣求解分子分母的最大公約數?
//c++求最大公約數
//碾除法
#include using namespace std;
void main()
cout<
程式設計之美 2 6 精確表達浮點數
本題目內容如下 在計算機中,有時使用float或double來儲存小數是不能得到精確值的.如果你需要得到精確計算結果,最好是用分數形式來表示小數。有限小數或者無限迴圈小數都可以轉化為分數。eg 0.9 9 10 0.33 3 1 3 括號裡的數字表示的的是迴圈節 當然乙個小數可以用好幾種弄分數形式來...
程式設計之美 2 6 精確表達浮點數
題目 給乙個有限小數 或者 無限迴圈小數,用分母最小的方式用分數精確的表達這個數字。括號中表示迴圈部分,如 0.3 0.3 3 0.3 0 思路 我一看,傻眼了,想了兩下不想想了,就在網上找迴圈小數轉分數,結果居然是小學奧賽題!我鬱悶的很啊.拿 1.2 34 來舉例子吧 1.2 34 10 12.3...
程式設計之美 2 6 精確表達浮點數
1.簡述 簡單的說就是將有限迴圈小數和無限迴圈小數轉化為分數形式。比如 0.9 9 10 0.333 3 1 3,其中括號表示迴圈節。2.思路 書上的方法就是分情況討論。首先是有限迴圈小數,比如123.456,整數部分123不用說了,主要是小數部分0.456,直接轉化為456 1000,然後消去最大...