アイデア:
(分子と分母の最大公約数で割っ同時に、である)は、その最も単純な形に最初の2つのスコア
そして、質問の意味は、最小公倍数の2つのスコアを依頼することです
次の2つの式を使用して、結果を見つけることができます
1.最大公約数= * Bの最小公倍数*
2. 2つのスコアの最小公倍数:分子が2つの分子の最小公倍数であり、分母は(スコアが最も単純な形態である)は、2つの最大公約数の分母であります
注:分子があれば、出力分割として、分母で割り切れることができれば、結果を最終結果を決定するために、それ以外の場合、出力文字列の連結
ソースコード:
パッケージhduoj。 インポートjava.util.Scanner; / ** 最大公約数の最小公倍数* = A * B * * 2つのスコアの最小公倍数:分子が2つの分子の最小公倍数であるが、分母は、二つの最大公約数の分母(スコアが最も単純な形態であります * / パブリック クラスhdoj_1713 { 静的 長い GCD(長い、長いB){ 場合(B == 0)を返します。 リターン(GCD(B、%のB))。 } パブリック 静的 ボイドメイン(文字列[]引数){ スキャナSC = 新しいスキャナ(System.in)。 int型のカウント= Integer.parseInt(sc.next()); しばらく(数- != 0 ){ ストリングthe_first = sc.next()。 ストリングthe_last = sc.next()。 長い the_first_numberator = Integer.parseInt(the_first.split( "/")[0 ])。 長い the_first_denominator = Integer.parseInt(the_first.split( "/")[1 ])。 長い gcd_1 = GCD(the_first_numberator、the_first_denominator)。 the_first_numberator / = gcd_1。 the_first_denominator / = gcd_1。 長い the_last_numberator = Integer.parseInt(the_last.split( "/")[0 ])。 長い the_last_denominator = Integer.parseInt(the_last.split( "/")[1 ])。 長い gcd_2 = GCD(the_last_numberator、the_last_denominator)。 the_last_numberator / = gcd_2。 the_last_denominator / = gcd_2。 長い gcd_3 = GCD(the_first_numberator、the_last_numberator)。 長い the_result_numberator = the_first_numberator / gcd_3 * the_last_numberator。 長い the_result_denominator = GCD(the_first_denominator、the_last_denominator)。 もし(the_first_numberator%the_result_denominator!= 0 ) System.out.println(the_result_numberator + "/" + the_result_denominator)。 他 のSystem.out.println(the_result_numberator / the_result_denominator)。 } } }
アイデアは他のブロガーから学ぶ、とのリンクを貼り付けることです。
https://www.cnblogs.com/William-xh/p/7203232.html?utm_source=itdadao&utm_medium=referral
コードはACとなっています
私は助けたいです
上記