Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình cộng hai phân số

Được đưa ra với đầu vào là phân số, tức là a / b và c / d trong đó a, b, c và d có thể là bất kỳ giá trị nguyên nào khác 0 và nhiệm vụ là thêm hai phân số này để tạo ra tổng cuối cùng của chúng.

Phân số được biểu diễn bằng -

  • a / b, trong đó a được gọi là tử số và b được gọi là mẫu số.
  • a và b có thể có bất kỳ giá trị số nào nhưng b có thể có bất kỳ giá trị số nào khác 0.
  • Tổng của hai phân số được biểu diễn dưới dạng a / b + c / d và quy tắc cộng hai số hạng là mẫu số của chúng phải bằng nhau và nếu chúng không bằng nhau thì chúng phải bằng nhau và sau đó chỉ có thể cộng. đã thực hiện.

Ví dụ

Input-: 1/4 + 2/12
Output-: 5/12
Since both the fractions denominators are unequal so to make them equal either GCD or LCM can be calculated. So in this case by multiplying the denominator which is 4 by 3 we can make them equal
(1 * 3) / (4 * 3) = 3 / 12
Add both the terms: 3 / 12 + 2 / 12 = 5 / 12
Input-: 1/4 + 2/4
Output-: 3/4
Since both the terms have same denominator they can be directly added

Thuật toán

In function int gcd(int a, int b)
Step 1-> If a == 0 then,
   return b
Step 2-> Return gcd(b%a, a)
In function void smallest(int &den3, int &n3)
   Step 1-> Declare and initialize common_factor as gcd(n3,den3)
   Step 2-> Set den3 = den3/common_factor
   Step 3-> Set n3 = n3/common_factor
In Function void add_frac(int n1, int den1, int n2, int den2, int &n3, int &den3)
   Step 1-> Set den3 = gcd(den1,den2)
   Step 2-> Set den3 = (den1*den2) / den3
   Step 3-> Set n3 = (n1)*(den3/den1) + (n2)*(den3/den2)
   Step 4-> Call function smallest(den3,n3)
In Function int main()
   Step 1-> Declare and initialize n1=1, den1=4, n2=2, den2=12, den3, n3
   Step 2-> Call add_frac(n1, den1, n2, den2, n3, den3)
   Step 3-> Print the values of n1, den1, n2, den2, n3, den3

Ví dụ

#include <stdio.h>
int gcd(int a, int b) {
   if (a == 0)
      return b;
   return gcd(b%a, a);
}
void smallest(int &den3, int &n3) {
   // Finding gcd of both terms
   int common_factor = gcd(n3,den3);
   den3 = den3/common_factor;
   n3 = n3/common_factor;
}
void add_frac(int n1, int den1, int n2, int den2, int &n3, int &den3) {
   // to find the gcd of den1 and den2
   den3 = gcd(den1,den2);
    // LCM * GCD = a * b
   den3 = (den1*den2) / den3;
   // Changing the inputs to have same denominator
   // Numerator of the final fraction obtained
   n3 = (n1)*(den3/den1) + (n2)*(den3/den2);
   smallest(den3,n3);
}
// Driver program
int main() {
   int n1=1, den1=4, n2=2, den2=12, den3, n3;
   add_frac(n1, den1, n2, den2, n3, den3);
   printf("%d/%d + %d/%d = %d/%d\n", n1, den1, n2, den2, n3, den3);
   return 0;
}

Đầu ra

1/4 + 2/12 = 5/12