日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

有机物燃烧的化学方程式配平(洛谷P1994题题解,Java语言描述)

發布時間:2025/3/15 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有机物燃烧的化学方程式配平(洛谷P1994题题解,Java语言描述) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目要求

P1994題目鏈接

分析

我太菜了,虧得我高中時期還虐(or被虐)生化,如今多年過去竟然沒分析出來坑點,我太菜了。

我開始盲目認為“元素守恒”,所以對HHH原子數求和,

CxHyOzC_xH_yO_zCx?Hy?Oz?與氧氣反應的化學方程式:
CxHyOz+(x+y4?z2)+O2→xCO2+y2H2OC_xH_yO_z+(x+\frac{y}{4}-\frac{z}{2})+O_2→xCO_2+\frac{y}{2} H_2OCx?Hy?Oz?+(x+4y??2z?)+O2?xCO2?+2y?H2?O

  • y2\frac{y}{2}2y?要是個整數,所以若yyy是個奇數,那就要×2\times2×2
  • (x+y4?z2)(x+\frac{y}{4}-\frac{z}{2})(x+4y??2z?)是個整數,因為xxx是個整數,所以要求(y4?z2)(\frac{y}{4}-\frac{z}{2})(4y??2z?)是個整數,若此式不為整數,則繼續×2\times2×2,即可配平為全整數系數。

AC代碼(Java語言描述)

import java.util.Scanner;public class Main {private static int i = 0, c_counter = 0, h_counter = 0, o_counter = 0, temp = 0;private static char[] formula;private static int count() {int counter = 0;while (++i < formula.length && Character.isDigit(formula[i])) {temp *= 10;temp += formula[i]-'0';}if (temp == 0) {counter++;} else {counter += temp;temp = 0;}return counter;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);formula = scanner.nextLine().toCharArray();scanner.close();for ( ; i < formula.length; ) {switch (formula[i]) {case 'C':c_counter += count();break;case 'H':h_counter += count();break;default:o_counter += count();}}while ((h_counter & 1) != 0 || (h_counter - 2*o_counter) % 4 != 0) {c_counter <<= 1;h_counter <<= 1;o_counter <<= 1;}System.out.println(c_counter + " " + h_counter/2);}}

總結

以上是生活随笔為你收集整理的有机物燃烧的化学方程式配平(洛谷P1994题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。