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 个回复

正序浏览
看着很吊的样子
回复 使用道具 举报
学习一下!!赞一个先
回复 使用道具 举报
前来学习~~~~~~
回复 使用道具 举报
代码很简洁,楼主你真厉害!
回复 使用道具 举报
polarfox17 发表于 2015-10-4 15:19
就是说你判断的那段方法啊,是从1的平方开始比较,再是2的平方,一直比到x的平方,我的意思是,如果x很大 ...

我是用没学API时的笨方法哈
回复 使用道具 举报
polarfox17 发表于 2015-10-4 15:19
就是说你判断的那段方法啊,是从1的平方开始比较,再是2的平方,一直比到x的平方,我的意思是,如果x很大 ...

呃 哈哈.
回复 使用道具 举报
月影千华 发表于 2015-10-4 13:10
我这个下面是判断平方数,上面是输出所有的平方数....不是判断,如果判断的话只用把一个数传进下面的函数就 ...

就是说你判断的那段方法啊,是从1的平方开始比较,再是2的平方,一直比到x的平方,我的意思是,如果x很大,会不会比较耽误时间
回复 使用道具 举报
polarfox17 发表于 2015-10-4 10:31
这个判断方法每次都从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.         }
复制代码
回复 使用道具 举报

这个判断方法每次都从1开始循环判断是否是平方数的话,如果传入的数值过大,或者需要判断多个数值的话,会比较慢了吧
回复 使用道具 举报
Math 是java.lang 包的。
回复 使用道具 举报
阅!.....
回复 使用道具 举报
学习了一下!
回复 使用道具 举报
顶一个,么么哒
回复 使用道具 举报
顶一波。。。。。。。。。
回复 使用道具 举报
  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.sqrt  可以直接开干么?
回复 使用道具 举报
进来看看~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马