Cake这是一个e-olymp
编程问题。
为了纪念继承人Tutti的诞生,皇家厨师准备了一个巨大的蛋糕,这个蛋糕被放在桌上供三胖人使用。第一个胖子可以自己吃蛋糕t1小时,第二个 - t2小时,第三个 - t3小时。
这三个胖子可以在什么时间同时吃蛋糕?
当我在正常Gnu C++
提交时,它提供了27%的准确结果,当我在Gnu C++ 4.7.1
提交时,它会给出8%准确的结果?问题是什么??这是我的错吗?请帮助。
我的代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double t1, t2, t3;
scanf("%lf %lf %lf", &t1, &t2, &t3);
double ans=(t1/3.0)+(t2/3.0)+(t3/3.0);
ans=(ans/3.0);
printf("%.2lf\n", ans);
return 0;
}
答案 0 :(得分:1)
你的逻辑错了。
想象一下,第一个人可以在1小时内吃掉整个蛋糕。
如果其他两个人帮忙,蛋糕会很快完成。 不到一小时。
这是一个模拟该场景的输入。
1 999 999
您的程序计算所需的时间
((1/3.0)+(999/3.0)+(999/3.0)/3.0)
那是444.33
小时。
答案 1 :(得分:0)
我的做法错了。
我必须使用这个规则:
t1
小时/蛋糕= 1/t1
蛋糕/小时。
对于所有三个人,他们在一小时内吃1/t1+1/t2+1/t3
个蛋糕。
在h小时内,他们吃h(1/t1+1/t2+1/t3)
个蛋糕。
吃完整块蛋糕的时间必须满足h(1/t1+1/t2+1/t3)=1
或h=1/(1/t1+1/t2+1/t3).
代码将是:
double t1, t2, t3;
scanf("%lf %lf %lf", &t1, &t2, &t3);
double ans=1/((1/t1)+(1/t2)+(1/t3));
printf("%.2lf\n", ans);