N 분수의 분자 수와 분모 den이 주어지면 작업은 N 분수의 곱을 찾는 것이며 출력은 축소된 형식이어야 합니다.
아래 주어진 그림과 같이 두 개의 분수 "4/5"와 "3/4"가 있습니다. 여기서 첫 번째 분자에 두 번째 분자를 곱하고 첫 번째 분모에 곱하는 두 파벌의 곱을 찾았습니다. 두 번째의 분모. 이제 최종 결과는 "12/20"으로 줄일 수 있으므로 출력은 "3/5"가 됩니다. 마찬가지로 주어진 문제를 해결하기 위한 프로그램을 개발해야 합니다.

입력
fraction f[3] = {{1,2},
{2,1},
{5,6}} 출력
5/6
설명 − 1/2 * 2/1 * 5/6 =10/12이므로 5/6으로 줄일 수 있습니다.
입력
fraction f[2] = {{2, 3},
{1,4}} 출력
1/6
설명 − 2/3 * 1/4 =2/12(1/6로 줄일 수 있음)
문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다.
위의 문제를 해결하기 위해 우리는 모든 분모와 분자를 곱할 수 있고, 결과를 다른 변수 prod_den과 prod_num에 저장할 수 있습니다. 이 변수는 각각 최종 분모와 최종 분자가 됩니다. 이제 축소된 형태를 찾아야 하므로 GCD를 찾아야 합니다. (최대 공약수) prod_num과 prod_den을 나누고 prod_num과 prod_den을 각각의 GCD로 나눕니다.
알고리즘
Start
Declare a struct fraction with following elements
1. num, 2. den
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 int product(int n, fraction f[])
Step 1→ Initialize prod_num = 1 prod_den = 1
Step 2→ Loop For i = 0; i < n; i++
prod_num = prod_num * f[i].num
prod_den = prod_den * f[i].den
Step 3→ Declare and initialize gcd = GCD(prod_num, prod_den)
Step 4→ prod_num = prod_num / gcd
Step 5→ prod_den = prod_den / gcd
Step 6→ Print prod_num, prod_den
In Function int main()
Step 1→ Declare struct fraction f[3] = {
{1,2},
{2,1},
{5,6}}
Step 2→ Declare and initialization n as sizeof(f)/sizeof(f[0])
Step 3→ product(n, f)
Stop 예시
#include <stdio.h>
struct fraction{
int num;
int den;
};
// Function to return gcd of a and b
int GCD(int a, int b){
if (a == 0)
return b;
return GCD(b % a, a);
}
//fucntion to print the result
int product(int n, fraction f[]){
int prod_num = 1, prod_den = 1;
// finding the product of all N
// numerators and denominators.
for (int i = 0; i < n; i++) {
prod_num *= f[i].num;
prod_den *= f[i].den;
}
// Finding GCD of new numerator and
// denominator
int gcd = GCD(prod_num, prod_den);
// finding reduced form
prod_num /= gcd;
prod_den /= gcd;
printf("%d/%d\n", prod_num, prod_den);
return 0;
}
int main(){
struct fraction f[3] = {
{1,2},
{2,1},
{5,6}};
int n = sizeof(f)/sizeof(f[0]);
product(n, f);
return 0;
} 출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
5/6