社区讨论
关于floor和ceil为什么会输出小数
P11184带余除法参与者 8已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @m2ag6634
- 此快照首次捕获于
- 2024/10/15 20:56 去年
- 此快照最后确认于
- 2025/11/04 23:54 4 个月前
此代码能通过本题。
CPP#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;
}
然而此代码会输出小数。
CPP#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.
回复
共 11 条回复,欢迎继续交流。
正在加载回复...