hi all!有些計算器,例如卡西歐991,能將計算得到的答案進行自然顯示,即能顯示出根號和分數。例如:
1 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
這個其實可以簡單地推一下。
a) 一個有理數
可以用2兩個整數P、Q表示為 P / Q ,可以表示為:
struct rational { int P, Q; };
b) 一個只帶一個根號的無理數
(這里只說根號的,不包括圓周率、sin/cos那種,雖然也可以用類似的思路來實現)可以用2個有理數A, B表示為 sqrt(A) * B
,可以很容易地用類似如下的數據結構表示:
struct irrational_single { struct rational A, B; };
c) 題中的式子只是由n個數據項組成,每個數據項都與b)中的無理數形式一致,并且各自的M/N值不同(相同的則可以合并P/Q),可以表示為:
struct irrational { int n; struct irrational_single *items; };
d) 對于可以不損失精度的計算,利用加法、乘法的結合律、分配律、交換律等逐一對式子中的每個項進行處理即可。
對于根號內還嵌套根號的情況更復雜一些,不過思路是一致的,不展開細說了。
添加回答
舉報
0/150
提交
取消