valenki13

lesson_171123

Nov 17th, 2023
769
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. //Рекурсия
  6.  
  7.  
  8. int factorial(int n) {
  9.     int res = 1;
  10.     while (n > 1) {
  11.         res *= n--;
  12.     }
  13.     return res;
  14. }
  15.  
  16. // fact(80)
  17. // 71569457046263802294811533723186532165
  18. // 58465734236575257710944505822703925548
  19. // 01488426689448672808140800000000000000
  20. // 00000
  21.  
  22.  
  23. int rec_factorial(int n) {
  24.     if (n < 0)
  25.         return 0;
  26.     if (n == 1 || n == 0)
  27.         return 1;
  28.  
  29.     cout << "before rec: " << n << endl;
  30.     int res = n * rec_factorial(n - 1);
  31.     cout << "after rec: " << n << endl;
  32.     return res;
  33. }
  34.  
  35. int fibo(int n) {
  36.     if (n <= 1)
  37.         return n;
  38.     cout << n << " ";
  39.     return fibo(n - 1) + fibo(n - 2);
  40. }
  41.  
  42. void rec_show(int sz, int* arr) {
  43.     if (sz == 0) {
  44.         //cout << endl;
  45.         return;
  46.     }  
  47.     rec_show(sz - 1, arr);
  48.     cout << arr[sz - 1] << " ";
  49. }
  50.  
  51. // Алгоритм Евклида
  52. int gcd(int a, int b) {
  53.     if (a < 0 || b < 0)
  54.         throw 1;
  55.     while (true) {
  56.         if (a == b)
  57.             return a;
  58.         else
  59.             if (a > b)
  60.                 a = a % b;
  61.             else
  62.                 b = b % a;
  63.     }  
  64. }
  65.  
  66. // Рекурсивный алгоритм Евклида
  67. int rec_gcd(int a, int b) {
  68.     if (a < 0 || b < 0)
  69.         throw 1;
  70.     if (a == b) return a;
  71.     if (a == 0) return b;
  72.     if (b == 0) return a;
  73.     if (a > b)
  74.         rec_gcd(a % b, b);
  75.     else
  76.         rec_gcd(a, b % a);
  77. }
  78.  
  79. void test_gcd() {
  80.     if (rec_gcd(12, 12) == 12)
  81.         cout << "GOOD" << endl;
  82.     else
  83.         cout << rec_gcd(12, 12) << " is not 12" << endl;
  84.    
  85.     if (rec_gcd(18, 24) == 6)
  86.         cout << "GOOD" << endl;
  87.     else
  88.         cout << rec_gcd(18, 24) << " is not 6" << endl;
  89. }
  90.  
  91. void show_chars() {
  92.     cout << "\033[34;46m" << "Hello";
  93.     for (int k = 0; k < 255; k++) {
  94.         cout << k << " - " << char(k) << endl;
  95.     }
  96.     cout << "\033[0m";
  97. }
  98.  
  99. int main() {
  100.     //cout << rec_factorial(5) << endl;
  101.     // f0 = 0, f1 = 1, 1, 2, 3, 5, 8, 13, 21...
  102.     //cout << "res: " << fibo(7) << endl;
  103.     //int arr[5]{ 1,2,3,4,5 };
  104.     //rec_show(5, arr);
  105.     //test_gcd();
  106.     show_chars();
  107.     return 0;
  108. }
  109.  
Advertisement
Add Comment
Please, Sign In to add comment