您的位置:首页 > 编程语言 > Java开发

一些简单的java编程题(10) ————判断完全平方数

2018-02-09 11:35 239 查看
版权声明:保留个人权利,可转载,请注明出处(http://blog.csdn.net/wlsgdsb)。  如程序有不当之处,敬请指正。
/* (程序头部注释开始)
版权声明:保留个人权利,可转载,请注明出处(http://blog.csdn.net/wlsgdsb)。 如程序有不当之处,敬请指正。

* 文件名称: 《一些简单的java编程题(10) ————判断完全平方数》
* 作 者: 那就去巴黎
* 完成日期: 2018 年 02 月 09 日
* 版 本 号: JDK 9.0.1

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

题目分析:
在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足条件,即是结果。

* (程序头部的注释结束)
*/

package questions;

public class Q10
{
public static void main(String[] args)
{
int n=0;
for (int i = 0; i <= 100000; i++) //先确定一个在100000内的大概范围
{
if (isCompSqrt(i + 100) && isCompSqrt(i + 168))
{
n = i;
break;
}
}
System.out.print("所求的数是:" + n);
}

private static boolean isCompSqrt(int p) //判断完全平方数的方法
{
boolean flag = false;
double fsqrt = Math.sqrt(p); // 先将数开平方
int q = (int) fsqrt; // 转换成整数,另q为开平方且转换为整数的结果。

if (p == Math.pow(q, 2)) // pow(x,y) 就是计算 x 的 y 次幂。把开平方后的整数再平方,看看他和开平方之前的数是不是相等 。
{
flag = true;
}
return flag;
}

}

程序运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息