Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
例如,4、9以及16都是平方數(shù),找到一種有效方法,使程序能快速運行
- 題目
- 破題
- 特別提醒
- 代碼
題目
*10.17(平方數(shù))找出大于Long.MAX_VALUE的前10個平方數(shù)。平方數(shù)是指形式為n^2的數(shù)。例如,4、9以及16都是平方數(shù),找到一種有效方法,使程序能快速運行
破題
將Long.MAX_VALUE賦值給BigDecimal對象
然后不斷增加這個對象值
每次增加都要判斷是否是一個平方數(shù)
如果是的話則輸出并計數(shù)
直到數(shù)字==10
特別提醒
下面的代碼我自認(rèn)為正確,但是死活運行不出來
代碼
import java.math.BigDecimal;public class Test17 {public static void main(String[] args) {BigDecimal bd = new BigDecimal(Long.MAX_VALUE);int count = 0;while (count < 10){bd = bd.add(BigDecimal.ONE);if (isMultipleNumber(bd)){System.out.println(bd);count++;}}}public static boolean isMultipleNumber(BigDecimal bd){BigDecimal temp1 = new BigDecimal("1e+10");BigDecimal result;for (BigDecimal temp = new BigDecimal("3e+9"); !temp.equals(temp1) ; temp = temp.add(BigDecimal.ONE)){result = temp.multiply(temp);if (result.equals(bd)){return true;}}return false;} }總結(jié)
以上是生活随笔為你收集整理的Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第10章:*10.1
- 下一篇: Java黑皮书课后题第10章:*10.1