두 개의 정수 Num1과 Num2가 입력으로 주어집니다. 정수는 분수 Num1/Num2로 나타낼 수 있습니다. . 목표는 이 분수를 가장 낮은 형태로 줄이는 것입니다.
GCD를 사용하여 최고 분모 찾기
-
두 숫자의 최대 공약수를 계산합니다.
-
두 숫자를 해당 gcd로 나눕니다.
-
두 변수를 나누기 후 몫으로 설정합니다.
-
가장 낮은 분수는 Num1/Num2입니다.
예시
입력 − Num1=22 Num2=10
출력 - 숫자1 =11 숫자2 =5
가장 낮은 비율:11/5
설명 - 22와 10의 GCD는 2입니다.
22/2=11 및 10/2=5
가장 낮은 분수는 11/5입니다.
입력 − Num1=36 Num2=40
출력 - 숫자1 =9 숫자2 =10
최저 분수:9/10
설명 - 36과 40의 GCD는 4입니다.
40/4=10 및 36/4=9
가장 낮은 분수는 9/10입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
이 접근 방식에서는 먼저 재귀 접근 방식을 사용하여 입력 숫자의 GCD를 계산합니다. 두 숫자를 모두 GCD로 나누고 몫을 구합니다. 이 몫은 가장 낮은 부분의 일부가 됩니다.
-
입력 변수 Num1과 Num2를 사용합니다.
-
findGCD(int a, int b) 함수는 num1과 num2를 취하여 둘 다의 gcd를 반환합니다.
-
b가 0이면 findGCD(b,a%b)를 반환합니다.
-
함수 lowFraction(int num1, int num2)은 두 숫자를 모두 입력으로 받아 가장 낮은 분수를 인쇄합니다.
-
gcd에 대한 가변 denom을 가져옵니다.
-
num1=num1/denom 및 num2=num2/denom을 설정합니다.
-
num1과 num2를 출력합니다.
-
가장 낮은 분수를 num1/num2로 인쇄합니다.
예시
#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; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Num1 = 7 Num2 = 4 Lowest Fraction : 7/4