Вступление
Одной из первых вещей, которые я узнал в химии, была разработка формулы для сжигания алканов. Самый простой пример был: 2CH4 + 4O2 > 4H2O + 2CO2
. Обратите внимание, что уравнение можно было бы упростить, поделив каждый коэффициент на 2, мы бы получили CH4 + 2O2 > 2H2O + CO2
. Чтобы упростить ситуацию, мы будем игнорировать этот шаг .
Вы можете видеть, что при сжигании любого алкана используется кислород. После реакции получают только CO2 и H2O.
Задание:
Дайте полную программу, которая принимает входные данные из STDIN или ближайшего возможного эквивалента и выводит общую реакцию, используя STDOUT или ближайший возможный эквивалент.
Ввод всегда будет в форме C(n)H(2n+2)
, с n > 0
. Вот некоторые примеры входных данных:
CH4
C2H6
C3H8
C4H10
C5H12
C6H14
etc.
Полезный совет:
Каждый алкан имеет стандартную схему реакции сгорания:
2C(n)H(2n+2) + (3n+1)O2 > (2n+2)H2O + (2n)CO2
например
C4H10
дает следующее уравнение: 2C(4)H(2*4+2) + (3*4+1)O2 > (2*4+2)H2O + (2*4)CO2
. После расчета всего, мы получаем это окончательное уравнение:2C4H10 + 13O2 > 10H2O + 8CO2
Примеры:
input: CH4
output: 2CH4 + 4O2 > 4H2O + 2CO2
input: C3H8
output: 2C3H8 + 10O2 > 8H2O + 6CO2
input: C4H10
output: 2C4H10 + 13O2 > 10H2O + 8CO2
input: C12H26
output: 2C12H26 + 37O2 > 26H2O + 24CO2
Правила:
- Вам необходимо предоставить полную программу.
- Ваша программа должна принимать данные из STDIN или ближайшего аналога, если это невозможно.
- Ваша программа должна выводить с использованием STDOUT или ближайшего аналога, если это невозможно.
- Обратите внимание, что я использовал пробелы в примерах для повышения читабельности, они не обязательны .
2CH4 + 4O2 > 4H2O + 2CO2
и2CH4+4O2>4H2O+2CO2
оба являются действительными выходами. Однако, если вы постоянно используете пробелы для вывода, вы получите бонус -10% - Это код-гольф , поэтому выигрывает программа с наименьшим количеством байтов!