题解 UVa11461

题目大意 多组数据,每组数据给出两个正整数 \(a,b\),请求出 \(a,b\) 之间的完全平方数的个数。

分析 前缀和即可。

#include<bits/stdc++.h>
using namespace std;

const int maxn = 1E+5 + 5;

int a, b;
int ans[maxn];

int main()
{
    for(int i = 1; i * i <= 1E+5; ++i) ans[i * i] = 1;
    for(int i = 1; i <= 1E+5; ++i) ans[i] += ans[i - 1];
    while(~scanf("%d%d", &a, &b) && a && b)
        printf("%d\n", ans[b] - ans[a - 1]);
}

猜你喜欢

转载自www.cnblogs.com/whx1003/p/11964895.html
今日推荐