UVA 11461-Square Numbers

UVA 11461-Square Numbers_第1张图片
题目链接

题目解析

题意

输入两个整数a和b,输出从a到b(包含a和b)的平方数的个数。直到输入0 0时程序结束。

思路

如果一个数n是平方数,(double)sqrt(n)-(int)sqrt(n)<1e-6。

代码

#include
#include
bool f(int x){
        double m=sqrt(x);
        int n=(int)m;
        if(m-n<1e-6)
            return true;
        return false;
}
int main(){
    int a,b,num;
    while(~scanf("%d%d",&a,&b),a||b){
        num=0;
        for(int i=a;i<=b;i++){
            if(f(i))
                num++;  
        }
        printf("%d\n",num);
    }
    return 0;
}

你可能感兴趣的:(ACM题目)