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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不可言 于 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

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 寐海流风 于 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;
        }

注意查收!

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 2 0
寐海流风 发表于 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之间
回复 使用道具 举报
sanguodouble1 发表于 2014-6-15 16:23
赞一个,
顺便分析一下,假如A=100,B=900.
那么A的平方根是10,B的平方根是30.

就是就是。

貌似加技术分是写的代码越多才加分呢?以后都不精练代码了。
回复 使用道具 举报
好吧 学习了
回复 使用道具 举报
寐海流风 发表于 2014-6-15 17:22
就是就是。

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

我发帖都没技术分。。。(第31个回复)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马