黑马程序员技术交流社区

标题: 第五届在线编程大赛月赛第一题:完全平方数的个数 [打印本页]

作者: 不可言    时间: 2014-6-15 14:04
标题: 第五届在线编程大赛月赛第一题:完全平方数的个数
本帖最后由 不可言 于 2014-6-15 14:43 编辑

发布公司:
有 效 期:
CSDN
2014-06-03至2015-06-03
难 度 等 级:
答 题 时 长:
编程语言要求:

120分钟
C C++ Java C#
题目详情
给定整数区间[A,B]问其中有多少个完全平方数。
输入格式:
多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。
输出格式:
每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。
答题说明
输入样例
1 1
1 2
3 10
3 3
输出样例:
1
1
2
0

想了很久,没想出来,求助...

原文链接:http://hero.csdn.net/Question/Details?ID=608&ExamID=603&from=4
作者: 寐海流风    时间: 2014-6-15 14:27
本帖最后由 寐海流风 于 2014-6-15 14:29 编辑

        public static int completeNumbers(int A,int B){
                int a = (int)Math.sqrt(A);
                int num = (int)Math.sqrt(B)-a;
                if(A==a*a)
                        return num+1;
                return num;
        }

注意查收!
作者: sanguodouble1    时间: 2014-6-15 16:23
寐海流风 发表于 2014-6-15 14:27
public static int completeNumbers(int A,int B){
                int a = (int)Math.sqrt(A);
  ...

赞一个,
顺便分析一下,假如A=100,B=900.
那么A的平方根是10,B的平方根是30.
也就是说,一共有21(30-10+1)个数的平方在100-900之间
作者: 寐海流风    时间: 2014-6-15 17:22
sanguodouble1 发表于 2014-6-15 16:23
赞一个,
顺便分析一下,假如A=100,B=900.
那么A的平方根是10,B的平方根是30.

就是就是。

貌似加技术分是写的代码越多才加分呢?以后都不精练代码了。
作者: 雾里看花。    时间: 2014-6-15 20:59
好吧 学习了
作者: 不可言    时间: 2014-6-16 13:18
寐海流风 发表于 2014-6-15 17:22
就是就是。

貌似加技术分是写的代码越多才加分呢?以后都不精练代码了。 ...

我发帖都没技术分。。。(第31个回复)




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