Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tích N phân số dưới dạng rút gọn trong C

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