2012-02-10 31 views
0

我試圖建立一個程序,將激進的最簡單的激進形式。我,有情,沒有運氣。Java - 最簡單的激進形式

我在找一種方法,需要輸入String並返回String

輸入Stringsqrt[160]。我已經讓我的方法取出數值(160)。

現在,我只是需要一些突破160並返回一個String,如:提前"4*sqrt[10]"

謝謝!

注:

  1. 上面的僅僅是一個例子
+3

如果你(1)使你的例子一致和正確,並且(2)向我們展示你迄今爲止獲得的代碼,它將會有所幫助。 – 2012-02-10 13:07:50

+1

錯誤,'4 * sqrt [10]'是√160,而不是√120 – 2012-02-10 13:11:07

+0

您是否正在尋找一個符號數學庫?你可能會發現[這個問題](http://stackoverflow.com/q/3587557/341970)有趣。 – Ali 2012-02-10 13:50:20

回答

2

將因子分解,所有指數爲2的因子都可以在平方根之外移動。其餘的,將保持在根符號下。

+0

我怎麼能得到所有的因素?我現在知道如何做其餘的... – Confiqure 2012-02-11 18:43:24

+0

一個簡單的方法:開始從2開始劃分數字。如果當前數字是分頻器,則將其存儲爲一個因子並將其指數加1。如果沒有,請去下一個號碼(不是實際做出分區)。重複,直到分區的結果爲1. – zeller 2012-02-11 19:02:56

+0

非常感謝! – Confiqure 2012-02-11 22:04:30

1

定義 「最簡單的形式基團」。

既然什麼時候是sqrt(120) = 4*sqrt(10)?我的計算器告訴我10.954 != 12.649。這是一個錯字嗎?也許你的意思是sqrt(160)

是什麼讓你的表單更簡單?

方法接口很簡單;實施的邏輯更難。您必須將平方根符號下的值分解爲整數因子並查找完美的平方根。