Напишите программу на C++ для вывода первых 50 натуральных чисел с помощью рекурсии.

#include <iostream>
using namespace std;

void print(int n)
{
    if (n<1)
        return;
    print(n-1);
    cout<<n<<"  ";
}
int main()
{
    print(50);
    return 0;
}

Напишите программу на C++ для вычисления суммы чисел от 1 до n с помощью рекурсии.

#include <iostream>
using namespace std;

int sum(int n)
{
    if (n<1)
        return 0;
    return( n + sum(n-1));
}
int main()
{
    cout<<sum(10);
    return 0;
}

Напишите программу на C++ для вычисления факториала заданного числа с помощью рекурсии.

#include <iostream>
using namespace std;

int fact(int n)
{
    if (n==1)
        return 1;
    return( n * fact(n-1));
}
int main()
{
    cout<<fact(5);
    return 0;
}

Напишите программу на C++ для нахождения суммы всех элементов массива с помощью рекурсии.

#include <iostream>
using namespace std;


int sum(int arr[], int n)
{
    if (n==0)
        return 0;
    return(arr[n-1] + sum(arr, n-1));
}
int main()
{
    int arr[]={1,2,3,4,5}, n= 5;
    cout<<sum(arr, n);
}

Напишите программу на C++, реализующую рекурсивную функцию для вычисления суммы цифр заданного числа.

#include <iostream>
using namespace std;

int sumofDigits(int n)
{
    if (n == 0)
        return 0;
    return(n %10 + sumofDigits(n/10));
}
int main()
{
    cout<<sumofDigits(1234);

    return 0;
}

Напишите программу на C++, реализующую рекурсивную функцию для вычисления степени числа.

#include <iostream>
using namespace std;

int pow(int n, int p)
{
    if (p==1)
        return n;
    return(n * pow(n,p-1));
}
int main()
{
    cout<<pow(10,2)<<endl;
    cout<<pow(2,3)<<endl;
    return 0;
}

Напишите программу на C++, реализующую рекурсивную функцию для вычисления суммы четных и нечетных чисел в заданном диапазоне.

#include <iostream>
using namespace std;

void sum(int n1, int n2, int &sume, int &sumo)
{
    if(n1 > n2)
        return;
    if(n1 % 2==0)
        sume+=n1;
    else
        sumo+=n1;
    sum(n1+1, n2, sume, sumo);
}
int main()
{
    int sume=0, sumo=0;
    sum(1,10, sume, sumo);
    cout<<sume<<endl;
    cout<<sumo;
    return 0;
}

Напишите программу на C++ для печати рядов Фибоначчи с использованием рекурсии

#include <iostream>
using namespace std;


int fibo(int n)
{
    if (n ==0 )
        return 0;
    else if (n==1)
        return 1;
    return(fibo(n-1) + fibo(n-2));
}
void fibonacci(int n1, int n2)
{
    if(n1 > n2)
        return;
    cout<<fibo(n1-1)<<"  ";
    fibonacci(n1+1, n2);
}

int main()
{
    fibonacci(1,10);
}

Напишите программу на C++ для подсчета цифр заданного числа с помощью рекурсии

#include <iostream>
using namespace std;

int countofDigits(int n)
{
    if (n == 0)
        return 0;
    return(1 + countofDigits(n/10));
}
int main()
{
    cout<<countofDigits(1234);

    return 0;
}

Напишите программу на C++ для преобразования десятичного числа в двоичное с помощью рекурсии.

#include <iostream>
using namespace std;
long convertBinary(int);
int main()
{
    long biNo;
    int decNo;
    cout<<" Input any decimal number : ";
    cin>>decNo;

    biNo = convertBinary(decNo);
    cout<<"The Binary value "<<biNo;
    return 0;
}
long convertBinary(int decNo)
{
    static long biNo,r,fctor = 1;
    if(decNo != 0)
    {
         r = decNo % 2;
         biNo = biNo + r * fctor;
         fctor = fctor * 10;
         convertBinary(decNo / 2);
    }
    return biNo;
}

Напишите программу на C++ для проверки, является ли число простым или не использует рекурсию.

#include <iostream>
using namespace std;

int primeNo(int n, int i=2)
{
    if ( n == i )
        return 1;
    
    if (n % i == 0)
        return 0;
    
    return(primeNo(n, i+1));
}
int main()
{
    if(primeNo(5) == 1)
        cout<<"Prime No ";
    else
        cout<<"Not Prime No ";
}

Напишите программу на C++ для реализации рекурсивной функции поиска наибольшего общего делителя (НОД) двух чисел.

#include <iostream>
using namespace std;
int gcd(int x, int y) {
  if (x == 0)
    return y;
  if (y == 0)
    return x;
  return gcd(y, x % y);
}
int main()
{
    cout<<gcd(14,7);
    return 0;
}

Напишите программу на C++, реализующую рекурсивную функцию для вычисления произведения двух чисел без использования оператора умножения.

#include <iostream>
using namespace std;

int multiply(int x, int y) {
  if (x == 0 || y == 0)
    return 0;
  if (y > 0)
    return x + multiply(x, y - 1);
  else
    return -x + multiply(x, y + 1);
}

int main()
{
    cout<<multiply(2,3)<<endl;
    cout<<multiply(10,2);
    return 0 ;
}

Напишите программу на C++ для нахождения НОК двух чисел с помощью рекурсии.

#include <iostream>

using namespace std;
int lcmCalculate(int a, int b){
    static int m = 0;
    m += b;
    if((m % a == 0) && (m % b == 0))
        return m;
    else
        return(lcmCalculate(a, b));
}
int main()
{
    cout<<lcmCalculate(4,2);

    return 0;
}