励志用尽量少的代码做高效的表达。
注意点:
挨个算吃包子的时间势必会因为省略小数的问题导致结果不准确。
因此,对于本题:我的核心思路是:分数代替小数,使用除法+取余的方式化简分数,进而解题。
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int x, y, z, x1, y1, z1, p;
cin >> x >> y >> z >> x1 >> y1 >> z1 >> p;
int xi, yi, zi; //分子。
int sum1 = (x1/x)+(y1/y)+(z1/z); //保存整数部分
xi = (x1%x); yi = (y1%y); zi = (z1%z); //保存分子
double sum = (double)sum1 + (double)(xi*y*z + yi*z*x + zi*x*y)/(x*y*z); //整数部分+小数部分
cout << fixed << setprecision(p) << sum ; //小数点后p位输出
return 0;
}