我在化学学到的第一件事是给出烷烃燃烧的公式。最基本的例子是:2CH4 + 4O2 -> 4H2O + 2CO2。请注意,如果将每个系数除以2,则可以简化方程,我们将得到CH4 + 2O2 -> 2H2O + CO2。为了让事情变得更简单,我们会忽略这一点,以免事情变得复杂。
你可以看到,任何烷烃的燃烧,都需要氧气。反应后,只制备了CO2和H2O。
输入将始终以C(n)H(2n+2)形式出现,并带有n>0。以下是一些示例输入:
CH4
C2H6
C3H8
C4H10
C5H12
C6H14在燃烧反应中,每种烷烃都有一个标准模式:
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
CH4
2CH4 + 4O2 -> 4H2O + 2CO2
C3H8
2C3H8 + 10O2 -> 8H2O + 6CO2
C4H10
2C4H10 + 13O2 -> 10H2O + 8CO2
C12H26
2C12H26 + 37O2 -> 26H2O + 24CO22CH4 + 4O2 -> 4H2O + 2CO2和2CH4+4O2->4H2O+2CO2都是有效的输出。但是,如果您始终使用空格作为输出,则将获得-10%的奖励。发布于 2015-11-22 11:33:57
发布于 2015-11-20 21:28:32
发布于 2015-11-20 21:10:47
有时,我想知道我是否只是在用Java来伤害自己。
感谢@TNT和@TFeld剃去了一个好的20个字节!
class A{public static void main(String[]a){String s=a[0].substring(1,a[0].indexOf("H"));long n=Long.parseLong((s.length()>0)?s:"1");System.out.printf("2%s + %dO2 > %dH2O + %dCO2",a[0],3*n+1,2*n+2,2*n);}}很简单。基本上,我将输入从C削减到H,并获得该子字符串。如果没什么,我把n设为一个。否则,我将其设置为C和H之间的数字。下面的代码只是打印出来,并将其放入适当的符号中。
不毛之地
class A{
public static void main(String[]a) {
String s=a[0].substring(1,a[0].indexOf("H"));
long n=Long.parseLong((s.length()>0)?s:"1");
System.out.printf("2%s + %dO2 > %dH2O + %dCO2",a[0],3*n+1,2*n+2,2*n);
}
}https://codegolf.stackexchange.com/questions/64412
复制相似问题