Advertisement
shawon_majid

Struct add, sub, mul, div

Apr 6th, 2020
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. //Bismillahir Rahman-ir Rahim
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. typedef struct {
  5.     int p;
  6.     int q;
  7. }rational;
  8. int GCD(int a, int b){
  9.      int temp;
  10.      while(b != 0){
  11.         temp = b;
  12.         b = a % b;
  13.         a = temp;
  14.      }
  15.      return a;
  16. }
  17.  
  18. int LCM(int a, int b){
  19.     int gcd = GCD(a, b);
  20.     int lcm = a*b / gcd;
  21.     return lcm;
  22. }
  23. void addition (rational *s1, rational *s2, rational *s3)
  24. {
  25.     s3 -> q = LCM(s1 -> q, s2 -> q);
  26.     s3 -> p = (s1 -> p)*(s3 -> q / s1 -> q) + (s2 -> p)*(s3 -> q / s2 -> q);
  27. }
  28. void substraction (rational *s1, rational *s2, rational *s3)
  29. {
  30.     s3 -> q = LCM(s1 -> q, s2 -> q);
  31.     s3 -> p = (s1 -> p)*(s3 -> q / s1 -> q) - (s2 -> p)*(s3 -> q / s2 -> q);
  32. }
  33. void multiply (rational *s1, rational *s2, rational *s3)
  34. {
  35.     s3 -> p = (s1 -> p)*(s2 -> p);
  36.     s3 -> q = (s1 -> q)*(s2 -> q);
  37.     int gcd = GCD(s3 -> p, s3 -> q);
  38.     s3 -> p = (s3 -> p)/gcd;
  39.     s3 -> q = (s3 -> q)/gcd;
  40. }
  41. void divide (rational *s1, rational *s2, rational *s3)
  42. {
  43.     s3 -> p = (s1 -> p)*(s2 -> q);
  44.     s3 -> q = (s1 -> q)*(s2 -> p);
  45.     int gcd = GCD(s3 -> p, s3 -> q);
  46.     s3 -> p = (s3 -> p)/gcd;
  47.     s3 -> q = (s3 -> q)/gcd;
  48. }
  49. int main()
  50. {
  51.     //freopen("input.txt", "r", stdin);
  52.     //freopen("output.txt", "w", stdout);
  53.     rational r1, r2, r3;
  54.     r1.p = 6;
  55.     r1.q = 4;
  56.     r2.p = 2;
  57.     r2.q = 4;
  58.     divide(&r1, &r2, &r3);
  59.     cout << r3.p<<"/"<<r3.q << endl;
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement