दो भिन्न a/b और c/d दिए गए हैं (a, b, c, d पूर्णांक, b और d शून्य नहीं)। कार्य इनका योग निकालना है।
भिन्न का प्रतिनिधित्व: a/b जहां a अंश और b हर है। दो भिन्नों का योग a/b + c/d होता है; इसके लिए हर बराबर करने पड़ते हैं (LCM या GCD द्वारा)।
उदाहरण
इनपुट: 1/4 + 2/12 आउटपुट: 5/12 व्याख्या: हर 4 और 12 का LCM 12 है। 1/4 = 3/12। 3/12 + 2/12 = 5/12 इनपुट: 1/4 + 2/4 आउटपुट: 3/4 (हर पहले से समान)
एल्गोरिदम
फंक्शन gcd(a, b) यदि a == 0 तो b लौटाएं gcd(b%a, a) लौटाएं फंक्शन smallest(den3, n3) common_factor = gcd(n3, den3) den3 = den3 / common_factor n3 = n3 / common_factor फंक्शन add_frac(n1, den1, n2, den2, n3, den3) den3 = gcd(den1, den2) den3 = (den1 * den2) / den3 // LCM n3 = n1*(den3/den1) + n2*(den3/den2) smallest(den3, n3) कॉल करें मुख्य फंक्शन n1=1, den1=4, n2=2, den2=12 आरंभ करें add_frac कॉल करें परिणाम प्रिंट करें
C कोड उदाहरण
#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) {
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) {
*den3 = gcd(den1, den2);
*den3 = (den1 * den2) / *den3;
*n3 = n1 * (*den3 / den1) + n2 * (*den3 / den2);
smallest(den3, n3);
}
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;
}
आउटपुट
1/4 + 2/12 = 5/12