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
などを使って最小公倍数を得ることができます。