Cho N phân số với tử số num và mẫu số den. Tính tích và xuất kết quả dưới dạng rút gọn.
Ví dụ
Đầu vào
fraction f[3] = {{1,2}, {2,1}, {5,6}}
Đầu ra - 5/6
Giải thích - 1/2 × 2/1 × 5/6 = 10/12 = 5/6
Đầu vào
fraction f[2] = {{2,3}, {1,4}}
Đầu ra - 1/6
Phương pháp
- Khởi tạo prod_num = 1, prod_den = 1
- Duyệt N phân số: nhân dồn tử số và mẫu số
- Tìm UCLN (GCD) của prod_num và prod_den
- Chia cả 2 cho UCLN để rút gọn
- In kết quả
Chương trình mẫu
#include <stdio.h>
struct Fraction {
int num, den;
};
int GCD(int a, int b) {
if (a == 0) return b;
return GCD(b % a, a);
}
void product(int n, struct Fraction f[]) {
int prod_num = 1, prod_den = 1;
for (int i = 0; i < n; i++) {
prod_num *= f[i].num;
prod_den *= f[i].den;
}
int gcd = GCD(prod_num, prod_den);
prod_num /= gcd;
prod_den /= gcd;
printf("%d/%d\n", prod_num, prod_den);
}
int main() {
struct Fraction f[3] = {{1,2}, {2,1}, {5,6}};
int n = sizeof(f) / sizeof(f[0]);
product(n, f);
return 0;
}
Kết quả
5/6