Skip to content

3-A2. Fraction

入力から整数を受け取り、を計算して、存在するなら分数n/dのような文字列して表示しよう。

結果を約分する必要はないものとします。

入力/出力例

例1

入力

1 2 3 4

出力

10/8

例2

入力

1 3 5 7

出力

22/21

例3

入力

1 0 1 0

出力

0除算は定義されないため、は存在しません。

ヒント

ヒント1

今回は約分が必要ないので、最小公倍数を求める必要はありません。素直に掛け算で分母を求めてしまってよいでしょう。

解答例

解答例1

クリックして展開
cpp
#include <iostream>
using namespace std;

int main() {
    int a, b, c ,d;
    cin >> a >> b >> c >> d;

    // 分母が0でないなら
    if (b != 0 && d != 0) {
        // 分母を計算 (今回は約分が不要なため、最小公倍数でなくともよい)
        int denominator = b * d;

        // 分子を計算
        int numerator = a * d + c * b;

        // 結果を出力
        cout << numerator << "/" << denominator << endl;
    }
}

なお、約分をしたい場合はstd::gcdなどを使って最小公倍数を得ることができます。