В честь дня рождения наследника Тутти королевский повар приготовил огромный праздничный торт, который был подан на стол Трем Толстякам. Первый толстяк сам мог бы целиком его съесть за $t_1$ часов, второй — за $t_2$ часов, а третий — за $t_3$ часов.
Сколько времени потребуется толстякам, чтобы съесть весь праздничный торт вместе?
Входные данные
Единственная строка содержит три целых неотрицетельных числа $t_1$, $t_2$ и $t_3$, каждое из которых не превосходит $10000$.
Выходные данные
Вывести время в часах, за которое толстяки вместе могут съесть торт. Результат округлить до двух десятичных знаков.
TESTS
|
|
|
|
---|---|---|---|
3 | 3 | 3 | 1.00 |
4 | 67 | 50 | 3.51 |
228.22 | 8 | 2.28 | 1.76 |
1577 | 157.7 | 15.77 | 14.21 |
C ветвлением:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include<iostream> #include<iomanip> using namespace std; int main(){ double t1,t2,t3; cin >> t1 >> t2 >> t3; double t; t = (t1*t2*t3) / (t1*t2 + t1*t3 + t2*t3); if(t1*t2*t3 == 0) cout<<0; else cout<<fixed<<setprecision(2)<<t; return 0; } |
Без ветвления:
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <iomanip> using namespace std; int main() { double t1, t2, t3; cin >> t1 >> t2 >> t3; double t = 1 / (1 / t1 + 1 / t2 + 1 / t3) ; cout << setprecision(2) << fixed << t; return 0; } |
Решение с ветвлением
Первый толстяк ест со скоростью один торт за $t_1$ часов. Аналогично и с остальными толстяками. Тогда из торта следует вычесть те части, которые съест каждый, чтобы торта не осталось. Получается уравнение
$1-\frac{t}{t_1}-\frac{t}{t_2}-\frac{t}{t_3}=0;$
$\frac{t}{t_1}+\frac{t}{t_2}+\frac{t}{t_3}=1;$
$\frac{tt_2t_3+tt_1t_3+tt_1t_2}{t_1t_2t_3}=1;$
$t\left(t_1t_2+t_2t_3+t_1t_3\right)=t_1t_2t_3;$
$t = \frac{t_1t_2t_3}{t_1t_2+t_2t_3+t_1t_3};$
Рассматриваем случай, при котором одна из переменных равна нулю, тогда выводим ноль. В противном случае выводим значение $t$ с округлением до сотых.
Решение без ветвления
Так как по условию задачи первый толстяк съедает весь торт за $t_1$ часа, второй — за $t_2$ часа и третий — за $t_3$ часа, то их скорость поедания торта составит $\frac{1}{t_1}$, $\frac{1}{t_2}$ и $\frac{1}{t_3}$ торта в час соответсвенно. Если толстяки будут есть торт одновременно, то в час они будут съедать $\left(\frac{1}{t_1}+\frac{1}{t_2}+\frac{1}{t_3}\right)$ часть торта. Тогда весь торт будет съеден за $\frac{1}{\frac{1}{t_1}+\frac{1}{t_2}+\frac{1}{t_3}}$ часов.
Затем нужно вывести результат, округлённый до двух десятичных знаков. Для этого воспользуемся функцией
setprecision() и её аргументом
fixed
1 |
cout << setprecision(2) << fixed << t; |
Ссылки
Условие задачи e-olymp
Код решения
Спасибо, исправил.
[latex]\left(\frac{1}{t_1}+\frac{1}{t_2}+\frac{1}{t_3}\right)[/latex]. Разница в данном случае не очень заметна, но нужно привыкать делать правильно.
Вы иногда пишите [latex]t_i[/latex], и это правильно. Но иногда, неожиданно, Вы начинаете писать [latex]t_i[/latex]. Нужно исправить.