又是一个签到题目,但是要注意一些坑点。
首先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; } }