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

Giảm phân số xuống dạng thấp nhất trong C ++

Cho hai số nguyên Num1 và Num2 làm đầu vào. Các số nguyên có thể được biểu diễn dưới dạng phân số Num1 / Num2 . Mục đích là giảm phần này xuống dạng thấp nhất.

Sử dụng GCD để tìm mẫu số cao nhất

  • Chúng tôi sẽ tính ước số chung lớn nhất của cả hai số.

  • Chia cả hai số cho gcd đó

  • Đặt cả hai biến làm thương số sau khi chia.

  • Phần thấp nhất sẽ là Num1 / Num2.

Ví dụ

Đầu vào - Num1 =22 Num2 =10

Đầu ra - Num1 =11 Num2 =5

Phân số thấp nhất:11/5

Giải thích - GCD của 22 và 10 là 2.

22/2 =11 và 10/2 =5

Phần thấp nhất là 11/5

Đầu vào - Num1 =36 Num2 =40

Đầu ra - Num1 =9 Num2 =10

Phân số thấp nhất:9/10

Giải thích - GCD của 36 và 40 là 4.

40/4 =10 và 36/4 =9

Phần thấp nhất là 9/10

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

Trong cách tiếp cận này, trước tiên chúng ta sẽ tính toán GCD của các số đầu vào bằng cách sử dụng phương pháp đệ quy. Chia cả hai số cho GCD và nhận được thương. Các thương số này sẽ là một phần của phân số thấp nhất.

  • Lấy các biến đầu vào Num1 và Num2.

  • Hàm findGCD (int a, int b) nhận num1 và num2 và trả về gcd của cả hai.

  • Nếu b là 0 trả về a khác trả về findGCD (b, a% b).

  • Hàm lowFraction (int num1, int num2) nhận cả hai số làm đầu vào và in ra phân số thấp nhất.

  • Lấy denom biến cho gcd.

  • Đặt num1 =num1 / denom và num2 =num2 / denom.

  • In num1 và num2.

  • In phần nhỏ nhất dưới dạng num1 / num2.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int findGCD(int a, int b) {
   if (b == 0)
      return a;
      return findGCD(b, a % b);
   }
   void lowestFraction(int num1, int num2){
      int denom;
      denom = findGCD(num1,num2);
      num1/=denom;
      num2/=denom;
      cout<< "Num1 = " << num1<<endl;
      cout<< "Num2 = " << num2<<endl;
      cout<< "Lowest Fraction : "<<num1<<"/"<<num2;
}
int main(){
   int Num1 = 14;
   int Num2 = 8;
   lowestFraction(Num1,Num2);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau

Num1 = 7
Num2 = 4
Lowest Fraction : 7/4