问题描述
从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同;肉包每秒钟吃x个;韭菜包每秒钟吃y个;没有馅的包子每秒钟吃z个;现在有x1个肉包,y1个韭菜包,z1个没有馅的包子;问:猴子吃完这些包子要多久?结果保留p位小数。
输入格式
输入1行,包含7个整数,分别表示吃不同包子的速度和不同包子的个数和保留的位数。
输出格式
输出一行,包含1个实数,表示吃完所有包子的时间。
这一题要求保留小数点后p位,难点在于事先不确定p值是多少,可以使用setprecision()和fixed 解决这个问题。
#include<bits/stdc++.h>
using namespace std;
int main(){
double x,y,z,x1,y1,z1,p;
cin>>x>>y>>z>>x1>>y1>>z1>>p;
double t1 = x1/x;
double t2 = y1/y;
double t3 = z1/z;
double t = t1 + t2 + t3;
cout<<setprecision(p)<<fixed<<t<<endl;
return 0;
}
setprecision()和fixed 是STL库中的内容,setprecision( int p )是设置数值的精度,包含整数和小数。fixed 表示用一般的方式输出浮点数,C++默认的流输出数值有效位是6。setprecision()和fixed合用就可以保留小数点后的位数。