Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- //Рекурсия
- int factorial(int n) {
- int res = 1;
- while (n > 1) {
- res *= n--;
- }
- return res;
- }
- // fact(80)
- // 71569457046263802294811533723186532165
- // 58465734236575257710944505822703925548
- // 01488426689448672808140800000000000000
- // 00000
- int rec_factorial(int n) {
- if (n < 0)
- return 0;
- if (n == 1 || n == 0)
- return 1;
- cout << "before rec: " << n << endl;
- int res = n * rec_factorial(n - 1);
- cout << "after rec: " << n << endl;
- return res;
- }
- int fibo(int n) {
- if (n <= 1)
- return n;
- cout << n << " ";
- return fibo(n - 1) + fibo(n - 2);
- }
- void rec_show(int sz, int* arr) {
- if (sz == 0) {
- //cout << endl;
- return;
- }
- rec_show(sz - 1, arr);
- cout << arr[sz - 1] << " ";
- }
- // Алгоритм Евклида
- int gcd(int a, int b) {
- if (a < 0 || b < 0)
- throw 1;
- while (true) {
- if (a == b)
- return a;
- else
- if (a > b)
- a = a % b;
- else
- b = b % a;
- }
- }
- // Рекурсивный алгоритм Евклида
- int rec_gcd(int a, int b) {
- if (a < 0 || b < 0)
- throw 1;
- if (a == b) return a;
- if (a == 0) return b;
- if (b == 0) return a;
- if (a > b)
- rec_gcd(a % b, b);
- else
- rec_gcd(a, b % a);
- }
- void test_gcd() {
- if (rec_gcd(12, 12) == 12)
- cout << "GOOD" << endl;
- else
- cout << rec_gcd(12, 12) << " is not 12" << endl;
- if (rec_gcd(18, 24) == 6)
- cout << "GOOD" << endl;
- else
- cout << rec_gcd(18, 24) << " is not 6" << endl;
- }
- void show_chars() {
- cout << "\033[34;46m" << "Hello";
- for (int k = 0; k < 255; k++) {
- cout << k << " - " << char(k) << endl;
- }
- cout << "\033[0m";
- }
- int main() {
- //cout << rec_factorial(5) << endl;
- // f0 = 0, f1 = 1, 1, 2, 3, 5, 8, 13, 21...
- //cout << "res: " << fibo(7) << endl;
- //int arr[5]{ 1,2,3,4,5 };
- //rec_show(5, arr);
- //test_gcd();
- show_chars();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment