欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数

发布时间:2024/8/1 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

例如,4、9以及16都是平方数,找到一种有效方法,使程序能快速运行

  • 题目
    • 破题
    • 特别提醒
    • 代码

题目

*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数。例如,4、9以及16都是平方数,找到一种有效方法,使程序能快速运行

破题

将Long.MAX_VALUE赋值给BigDecimal对象
然后不断增加这个对象值
每次增加都要判断是否是一个平方数
如果是的话则输出并计数
直到数字==10

特别提醒

下面的代码我自认为正确,但是死活运行不出来

代码

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;} }

总结

以上是生活随笔为你收集整理的Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。