我想爲我的項目創建一個java所需的power(base,exponent)的最佳方法,其中base和exponent的類型都是int,指數< = 10但是這必須在java中完成嗎?我知道可以使用bitshift,但它本身涉及java.Kindly中bitset的用法,建議執行java中有效的功率指數方法(JDK 1.7)
1
A
回答
0
只需使用java.lang.BigInteger
類。它有一個pow()方法,可以以一種相當有效的方式完全符合您的需求。
+0
其實modpow()工作得很好:)謝謝你們解決了這個問題:) – djscribbles
-1
由於指數在int中,因此您已經擁有數字的二進制表示形式(以及計算機的功能)。所以你應該有三個整數,基數,指數和臨時整數,你將用於計算和一個解決方案。你從這開始:
unsigned int base;//you manage input for this and exponent like you wish, probably passed in as parameters
unsigned int exponent;
unsigned int temp = base;
unsigned int answer = 1;
while (exponent!=0){
if (exponent%2 == 1){
answer *= temp;
}
exponent>>1;
temp<<1;
}
請試試這個算法,讓我知道它是如何工作的。 while look最大運行指數的位長(即32次)。此代碼不處理大數字或負數,但我不確定是否需要這個。
相關問題
- 1. JDK 1.6中的驗證失敗,JDK 1.7中的成功
- 2. Java效率(調用方法)
- 3. java方法提高效率
- 4. 無法使用JDK 1.7
- 5. java.lang.NoClassDefFoundError:在JDK的Java/AWT /桌面1.7
- 6. Maven未指定Java JDK?
- 7. Maven不會用1.7 JDK編譯Java 7
- 8. Java Web Start自JDK 1.7破解
- 9. 內存有效功率集算法
- 10. jdk 1.6和jdk 1.7之間的區別?
- 11. 有效的Parens方法 - Java
- 12. 的IntelliJ 12不與JDK 1.7
- 13. 的Java 1.7 - 與Math.log功能
- 14. 無法在mac上安裝jdk 1.7
- 15. 無法在Fedora 14上安裝JDK 1.7
- 16. dict.get()方法的效率
- 17. 效率的Java
- 18. 在PHP中擴展對方的功能更有效率?
- 19. java.nio.file甚至沒有與JDK 1.7在Eclipse
- 20. 效率指數柱狀圖
- 21. 方法使此HashMap更有效率
- 22. JDK java.util.concurrent.ConcurrentSkipListSet.equals(對象o)執行效率
- 23. 。C#中的AddOrUpdate方法效率如何?
- 24. 用jdk 1.7啓動Apache James
- 25. 管理javadoc使用jdk 1.7
- 26. supercsv兼容與JDK 1.7
- 27. Developer Studio 2.1.0和jdk 1.7
- 28. jdk版本1.7已找到?
- 29. APNS不能使用jdk 1.7
- 30. 循環中的Java效率
你想如何處理溢出? –
優化會非常困難,但您可以非常輕鬆地執行'O(log指數)':http://en.wikipedia.org/wiki/Exponentiation_by_squaring - 不會計算溢出,也就是說。 – IVlad
@IVlad:請注意,解決方案是'O(log指數)'整數運算,而不是'O(log指數)'時間/ ops – amit