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

package Demo13Perfect_Square;
public class Perfect_Square {
    /**
     * 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
     */
    /*
    分析:首先搞懂完全平方数的概念:若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
         也就是说,一个数是完全平方数,则它的开方是一个整数,n=a*a,√n=a,a为整数。
         可以假定我们知道这个数a,又知道另两个数l*l=(a+100), k*k=(a+100+168)
         对于一个(a+100)或(a+100+168),对它的开方取整,如果这个取整之后的数平方等于它自己,那么这个数就是一个完全平方数
     */
    public static void main(String[] args) {
        int a = 0;
        int l = 0;
        int k = 0;
        // 使用一个while循环来找这个数,我先用while(a>=0)死循环找了一遍,发现只有三个,就将条件改为了a<1000
        while(a<10000){
            // 将(a+100)和(a+100+168)的值强制转换为整数后赋给l和k,这样相当于Math.floor()的取整,不过返回的是int类型的
            l=(int)Math.sqrt(a+100);
            k=(int)Math.sqrt(a+100+168);
            // 判断如果l*l和k*k等于(a+100)和(a+100+168),就输出结果
            if(l*l==(a+100) && k*k==(a+100+168)){
                System.out.println("找到了一个:"+a);
                System.out.println(l+"*"+l+"=("+a+"+100)="+(a+100));
                System.out.println(k+"*"+k+"=("+a+"+100+168)="+(a+100+168));
                System.out.println("================================");
            }
            // a步进
            a++;
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容