求解答疑惑 悬关
  • 板块P1577 切绳子
  • 楼主XYY62012
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/24 15:44
  • 上次更新2024/3/24 17:29:10
查看原帖
求解答疑惑 悬关
1108111
XYY62012楼主2024/3/24 15:44

神犇看看我的代码

下面的while循环和for循环有什么不同?


我用while循环的时候提交记录是这样的:用while循环的提交记录


我用while循环的时候提交记录是这样的:用for循环的提交记录


这两个玩意儿有什么区别吗?求解答,悬关


#include<bits/stdc++.h>
using namespace std;
int n,k;
double l[100009];
double mid,z,y;
bool check(double m){
	int num=0;    
	for(int i=1;i<=n;i++){
		num+=(int)(l[i]/m);//转换类型 
	} 
	//判断是否满足条件: 
	if(num<k) return false;
	else return true;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>l[i];
	}
	z=0,y=0x7fffffff;
	/*while(z<y){
		mid=(z+y)/2;//计算中间值
		if(check(mid)) {
			z=mid+0.01;//移动左边界 
		}else{
			y=mid-0.01;//移动右边界 
		} 
	}*/
	for(int i=1;i<=100;i++)  {  
        mid=(z+y)/2;  
        if(check(mid)) z=mid;  
        else y=mid;  
    }  
	printf("%.2lf",floor(y*100)/100);
	return 0;
}
2024/3/24 15:44
加载中...