下面的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;
}