黑马程序员技术交流社区

标题: 习题问题 [打印本页]

作者: 忧伤-hy    时间: 2015-8-19 10:38
标题: 习题问题
作为一个0基础java班的小白,我每天都会尽可能的让自己多努力一点

这是第十天了,现在已经把开学发的50道题做到了第27题。发现其中有几道题的答案似乎有问题
比如第十三题的题目和答案是这样的:
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
  
public class  Prog13{
  
    public static void main(String[] args){
  
        int n=0;
  
        for(int i=0;i<100001;i++){
  
            if(isCompSqrt(i+100) &&  isCompSqrt(i+268)){
  
                n = i;
  
                break;
  
            }
  
        }
  
        System.out.println("所求的数是:"+n);
  
    }
  
    //判断完全平方数
  
    private static boolean isCompSqrt(int n){
  
        boolean isComp = false;
  
        for(int i=1;i<Math.sqrt(n)+1;i++){
  
            if(n==Math.pow(i,2)){
  
                isComp = true;
  
                break;
  
            }
  
        }
  
        return isComp;
  
    }
  
}
  


我自己做的是把i从-100取起,因为按照题目要求,只要这个数+100为正数就行了。
因此多得出了一个结果,也就是-99。我还是觉得这样的逻辑要缜密一些。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2