问题描述:
有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;
时间: 2024-11-10 01:08:40