此代码能通过本题。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll t,n,q;
int main(){
cin>>t;
while(t--){
cin>>n>>q;
if(q==0) cout<<1<<endl;
else cout<<n/q-(n+1+q)/(q+1)+1<<endl;
}
return 0;
}
然而此代码会输出小数。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll t,n,q;
int main(){
cin>>t;
while(t--){
cin>>n>>q;
if(q==0) cout<<1<<endl;
else cout<<floor(1.0*n/q)-ceil(1.0*(n+1)/(q+1))+1<<endl;
}
return 0;
}
这是为什么?求大佬解答。Thanks.