解题思路:不多说了,但输出有问题%.2lf输出是会四舍五入的。floor函数适用于浮点型向下取整的。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std;
double s[10009];
int main()
{
int n,k;
//freopen("t.txt","r",stdin);
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%lf",&s[i]);
}
double lh=200001,ld=0,mid;
while(lh-ld>0.00001)
{
int ans=0;
mid=(lh+ld)/2;
for(int i=0;i<n;i++)
{
ans+=(int)(s[i]/mid);
}
if(ans<k)
{
lh=mid;
}else
{
ld=mid;
}
}
printf("%.2lf\n",floor(lh*100)/100);
}
return 0;
}