Advertisement
Guest User

ahh shit

a guest
May 20th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. NWD REKURENCYJNIE
  2.  
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. long int NWD_rekurencja(int a, int b)
  8. {
  9. if (a==b) return a;
  10. if (a>b) return NWD_rekurencja(a-b, b);
  11. return NWD_rekurencja(a, b-a);
  12. }
  13.  
  14. int main()
  15. {
  16. int m, n;
  17.  
  18. cout << "Wpisz pierwsza liczbe: ";
  19. cin >> m;
  20. cout << "Wpisz druga liczbe: ";
  21. cin >> n;
  22. cout << "NWD tych liczb to: " << NWD_rekurencja(m, n) << endl;
  23.  
  24. return 0;
  25. }
  26.  
  27.  
  28. ===========================================================
  29.  
  30. NWD ITERACYJNIE
  31.  
  32. #include <iostream>
  33.  
  34. using namespace std;
  35.  
  36.  
  37. int NWD_iteraycjnie(int a, int b)
  38. {
  39. int r;
  40. while (b>0)
  41. {
  42. r=a%b;
  43. a=b;
  44. b=r;
  45. }
  46. return a;
  47. }
  48.  
  49. int main()
  50. {
  51. int m, n;
  52.  
  53. cout << "Wpisz pierwsza liczbe: ";
  54. cin >> m;
  55. cout << "Wpisz druga liczbe: ";
  56. cin >> n;
  57. cout << "NWD tych liczb to: " << NWD_iteraycjnie(m, n) << endl;
  58.  
  59. return 0;
  60. }
  61.  
  62.  
  63. =======================================================================
  64.  
  65. Ulamki dodawanie i dzielenie
  66.  
  67. #include <iostream>
  68.  
  69. using namespace std;
  70.  
  71. int NWD(int a, int b)
  72. {
  73. if (a==b) return a;
  74. if (a>b) return NWD(a-b, b);
  75. else return NWD(a, b-a);
  76. }
  77.  
  78. int NWW (int a, int b)
  79. {
  80. return a/NWD(a,b)*b;
  81. }
  82.  
  83. void dodawanie(int a1, int b1, int a2, int b2)
  84. {
  85.  
  86. int wielokrotnosc=1;
  87. wielokrotnosc = NWW(b1, b2);
  88.  
  89. int licznik = 1;
  90.  
  91. if (a1==a2 && b1==b2) {
  92. cout << "wynik to: 1";
  93. }
  94.  
  95. else if (b1==b2) {
  96.  
  97. a1 = a1*wielokrotnosc;
  98. b1 = wielokrotnosc;
  99.  
  100. a2 = a2*wielokrotnosc;
  101. b2 = wielokrotnosc;
  102.  
  103. licznik = a1+a2;
  104.  
  105. licznik = licznik/NWD(licznik, b2);
  106. wielokrotnosc = wielokrotnosc/NWD(licznik, b2);
  107.  
  108. int wyciaganie = 1;
  109. wyciaganie = licznik/wielokrotnosc;
  110. licznik = licznik%wielokrotnosc;
  111.  
  112.  
  113. if (wyciaganie < 1) {
  114. cout << licznik << "/" << wielokrotnosc;
  115. }
  116.  
  117. else if (licznik==0 || wielokrotnosc==0) {
  118. cout << wyciaganie;
  119. }
  120.  
  121. else {
  122. cout << wyciaganie << " " << licznik << "/" << wielokrotnosc;
  123. }
  124.  
  125. }
  126.  
  127. else {
  128.  
  129. a1 = a1*wielokrotnosc;
  130. b1 = wielokrotnosc;
  131.  
  132. a2 = a2*wielokrotnosc;
  133. b2 = wielokrotnosc;
  134.  
  135. licznik = a1+a2;
  136.  
  137. licznik = licznik/NWD(licznik, b2);
  138. wielokrotnosc = wielokrotnosc/NWD(licznik, b2);
  139.  
  140. int wyciaganie = 1;
  141. wyciaganie = licznik/wielokrotnosc;
  142. licznik = licznik%wielokrotnosc;
  143.  
  144.  
  145. if (wyciaganie < 1) {
  146. cout << licznik << "/" << wielokrotnosc;
  147. }
  148.  
  149. else if (licznik==0 || wielokrotnosc==0) {
  150. cout << wyciaganie;
  151. }
  152.  
  153. else {
  154. cout << wyciaganie << " " << licznik << "/" << wielokrotnosc;
  155. }
  156. }
  157. }
  158.  
  159. void dzielenie(int a1, int b1, int a2, int b2)
  160. {
  161. int wynik1=1, wynik2=1;
  162. double wyciaganie=1;
  163.  
  164. wynik1=a1*b2;
  165. wynik2=b1*a2;
  166.  
  167. int wynik1nwd=1, wynik2nwd=1;
  168.  
  169. wynik1nwd = a1*b2;
  170. wynik2nwd = b1*a2;
  171.  
  172. if (wynik1==wynik2) {
  173. cout << "Wynik to: 1";
  174. }
  175.  
  176. else if (wynik1>wynik2) {
  177.  
  178. wynik1 = wynik1/(NWD(wynik1nwd, wynik2nwd));
  179. wynik2 = wynik2/(NWD(wynik1nwd, wynik2nwd));
  180. wyciaganie = wynik1/wynik2;
  181. wynik1 = wynik1%wynik2;
  182.  
  183. if (wyciaganie < 1) {
  184. cout << wynik1 << "/" << wynik2;
  185. }
  186.  
  187. else if (wynik1==0 || wynik2==0) {
  188. cout << wyciaganie;
  189. }
  190.  
  191. else {
  192. cout << wyciaganie << " " << wynik1 << "/" << wynik2;
  193. }
  194. }
  195.  
  196. else {
  197.  
  198. wynik1 = wynik1/(NWD(wynik1nwd, wynik2nwd));
  199. wynik2 = wynik2/(NWD(wynik1nwd, wynik2nwd));
  200.  
  201. cout << wynik1 << "/" << wynik2;
  202. }
  203.  
  204. }
  205.  
  206. int main()
  207. {
  208. double a1, b1, a2, b2;
  209.  
  210. cout << "Wpisz licznik pierwszego ulamka: ";
  211. cin >> a1;
  212. cout << "Wpisz mianownik pierwszego ulamka: ";
  213. cin >> b1;
  214.  
  215. cout << endl;
  216.  
  217. cout << "Wpisz licznik drugiego ulamka: ";
  218. cin >> a2;
  219. cout << "Wpisz mianownik drugiego ulamka: ";
  220. cin >> b2;
  221.  
  222. cout << endl;
  223.  
  224. cout << "Wynik z dzielenia tych ulamkow: ";
  225. dzielenie(a1, b1, a2, b2);
  226.  
  227. cout << endl;
  228.  
  229. cout << "Wynik z dodawania tych ulamkow: ";
  230. dodawanie(a1, b1, a2, b2);
  231.  
  232. return 0;
  233. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement