试题 算法训练 猴子吃包子
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同;肉包每秒钟吃x个;韭菜包每秒钟吃y个;没有馅的包子每秒钟吃z个;现在有x1个肉包,y1个韭菜包,z1个没有馅的包子;问:猴子吃完这些包子要多久?结果保留p位小数。
输入格式
输入1行,包含7个整数,分别表示吃不同包子的速度和不同包子的个数和保留的位数。
输出格式
输出一行,包含1个实数,表示吃完所有包子的时间。
样例输入
4 3 2 20 30 15 2
样例输出
22.50
数据规模和约定
0<x<100;0<y<100;0<z<100;0<x1<=1000000;0<y1<=10000000;0<z1<=10000000;0<p<=1000
代码:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double a[3], b[3];
int i, n;
double sum = 0;
for(i = 0; i < 3; i++)
{
cin >> a[i];
}
for(i = 0; i < 3; i++)
{
cin >> b[i];
}
cin >> n;
for(i = 0; i < 3; i++)
{
sum = sum + b[i]/a[i];
}
//printf("%.*f", n, sum);
cout << fixed << setprecision(n) << sum << endl;
return 0;
}
cout << fixed << setprecision(n) << sum << endl;
可以到这个网址查看
https://blog.csdn.net/m0_52592128/article/details/112847404?spm=1001.2014.3001.5501
本题目还有一个可以关注的点:
float与double的区别:
float是单精度型,内存占4个字节,有效位是7位(因为有正负之分),double是双精度,占8个字节,有效位为16位
eg: 在C/C++中,有赋值语句
float a = 0.1;
会报错,因为在C/C++中,上述语句等号右边0.1,我们以为它是个float,但是编译器却把它认为是个double(因为小数默认是double),所以要报这个warning,一般改成0.1f就没事了。