问题描述:
有N条绳子, 它们的长度分别为Li. 如果从它们中切割出K条相同的绳子的话,这K条绳子每条最长能有多少?
(备注:答案保留两位小数)
<1>精确到小数点后两位输出
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int getDiv(vector<int> li, int max){
int ans =0;
for(int i=0;i<li.size();++i){
ans+=li[i]%max;
}
return ans;
}
int main(){
int N,K,temp,max,sum=0;
vector<int> li;
cin>>N>>K;
for(int i=0;i<N;++i){
float t; cin>>t;
temp = (int)(t*100);
sum+=temp;
li.push_back(temp);
}
max = sum/K;
while(max*K+getDiv(li,max)>sum){
max--;
}
cout.setf(ios::fixed); //按点输出显示
cout<<setprecision(2)<<max/100.<<endl;
return 0;
}
<2>运行结果
总结
设置小数点后精确到n位,需要引入头文件/setf(ios::fixed)/setprecision(n) 即可!
#include <iomanip>
cout.setf(ios::fixed); //按点输出显示
cout<<setprecision(2)<<max/100.<<endl;