A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 忧伤-hy 中级黑马   /  2015-8-19 10:38  /  472 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

作为一个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。我还是觉得这样的逻辑要缜密一些。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马