栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每日经典算法题(十三) 逆推算法(平方根相关)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日经典算法题(十三) 逆推算法(平方根相关)

每日经典算法题(十三) 逆推算法(平方根相关)

平方根:Square Root

题目

有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少?

程序分析

首先确定这个数的限定条件,然后循环遍历判断即可。

思路

用数学的思路来看,可列式:

  • a² = y + 100
  • b² = y + 100 + 168

因为 a,b 均为整数,所以 y + 100 的平方根为整数,y + 100 + 168 的平方根也为整数。

由于完全平方数 >= 0,所以 y + 100 >= 0,即 y >= -100。

这里为了减轻计算的压力,将上限限定为 100000 即可。

Java 中 Math 包为我们提供了 sqrt() 方法来计算平方根,利用 for 循环遍历 -100 到 100000 之间的整数,然后逐一判断即可。

代码示例
public class Q13_SquareRootAndCalculation {
   
    public static void main(String[] args) {
        for (int i=-100;i<=100000;i++){
            if (Math.sqrt(i+100)%1==0 && Math.sqrt(i+100+168)%1==0){
                System.out.print(i+"t");
            }
        }
    }
}
输出结果
-99	21	261	1581
  • Day13 打卡成功!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272412.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号