又是一个签到题目,但是要注意一些坑点。
首先sqrt不一定会返回int型,其次要特殊考虑a=0的case,因为我们使用的是f(r)-f(l-1)当a=0,sqrt(l-1)会变成sqrt(-1),会出错。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
int a,b;
cin>>a>>b;
if(a==0){
cout<<(int)sqrt(b)+1<<endl;
continue;
}
cout<<(int)sqrt(b)-(int)sqrt(a-1)<<endl;
}
}


京公网安备 11010502036488号