关于floor和ceil为什么会输出小数
  • 板块P11184 带余除法
  • 楼主EllinY
  • 当前回复11
  • 已保存回复11
  • 发布时间2024/10/15 20:55
  • 上次更新2024/10/15 22:14:18
查看原帖
关于floor和ceil为什么会输出小数
514936
EllinY楼主2024/10/15 20:55

此代码能通过本题。

#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.

2024/10/15 20:55
加载中...