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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1.         public static boolean isSquare(int x)
  2.         {
  3.                 double d = Math.sqrt(x);//先用double类型变量记下开根号后的数
  4.                 int i = (int)d;//再取整
  5.                 return i==d;//只需要判断取整后和取整前是否相等即可
  6.         }
复制代码

26 个回复

倒序浏览
好!!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
这是今天做题的时候碰到的问题,之前想的方法,比较复杂,想了半天才想了个简单的,如有错,请轻喷
回复 使用道具 举报
dai2686779 发表于 2015-10-1 22:08
好!!!!!!!!!!!!!!!!!!!

你这波回复有点迅速的啊,兄弟,我自己都没抢到沙发- -、
回复 使用道具 举报
polarfox17 发表于 2015-10-1 22:10
你这波回复有点迅速的啊,兄弟,我自己都没抢到沙发- -、

那必须的。单身数十年的手速
回复 使用道具 举报
dai2686779 发表于 2015-10-1 22:17
那必须的。单身数十年的手速

可以,这波可以
回复 使用道具 举报

喔。帅哥我看你骨骼清奇,必大有作为,不如送我几个黑马币可好?
回复 使用道具 举报
dai2686779 发表于 2015-10-1 22:37
喔。帅哥我看你骨骼清奇,必大有作为,不如送我几个黑马币可好?

我这只有家传的《如来神掌》 你要不,给你来两斤?
回复 使用道具 举报
进来看看~
回复 使用道具 举报
哪里的知识点?  不定义Math.sqrt  可以直接开干么?
回复 使用道具 举报
学习一下      
回复 使用道具 举报
  1. /*
  2. 写程序求一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  3. (完全平方数就是可以由两个相同的整数相乘得到的数)
  4. num+100=x2
  5. num+268=y2
  6. y+x y-x =168
  7. */
  8. package guoqing;

  9. public class PingFangShuDemo {
  10.         public static void main(String[] args) {
  11.                 for (int num = 0; num <= 85 * 85 - 168; num++) {
  12.                         if (isSquare(num + 100) && isSquare(num + 100 + 168)) {
  13.                                 System.out.println("num=" + num);
  14.                         }
  15.                 }
  16.         }

  17.         // 判断一个数是不是完全平方数
  18.         public static boolean isSquare(int x) {
  19.                 boolean flag = false;
  20.                 for (int y = 1; y <= x; y++) {
  21.                         if (x == y * y) {
  22.                                 flag = true;
  23.                                 break;
  24.                         }
  25.                 }
  26.                 return flag;
  27.         }
  28. }
复制代码
回复 使用道具 举报
顶一波。。。。。。。。。
回复 使用道具 举报
顶一个,么么哒
回复 使用道具 举报
学习了一下!
回复 使用道具 举报
阅!.....
回复 使用道具 举报
Math 是java.lang 包的。
回复 使用道具 举报

这个判断方法每次都从1开始循环判断是否是平方数的话,如果传入的数值过大,或者需要判断多个数值的话,会比较慢了吧
回复 使用道具 举报

我直接在for循环判断语句里写了个true,转出来的数据是,在int范围内,有四个,-99,21,261,1581
  1. public static void main(String[] args)
  2.         {
  3.                 for (int x = 0;true;x++ )
  4.                 {
  5.                         if(isSquare(x+100) && isSquare(x+100+168))
  6.                         {
  7.                                 System.out.println(x);
  8.                                 break;
  9.                         }

  10.                 }

  11.                
  12.         }
  13.         public static boolean isSquare(int x)//先建立一个判断是否是平方数的方法
  14.         {
  15.                 double d = Math.sqrt(x);//先用double类型变量记下开根号后的数
  16.                 int i = (int)d;//再取整
  17.                 return i==d;//只需要判断取整后和取整前是否相等即可
  18.         }
复制代码
回复 使用道具 举报
polarfox17 发表于 2015-10-4 10:31
这个判断方法每次都从1开始循环判断是否是平方数的话,如果传入的数值过大,或者需要判断多个数值的话, ...

我这个下面是判断平方数,上面是输出所有的平方数....不是判断,如果判断的话只用把一个数传进下面的函数就可以了.
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马