C/C++ программа для вызова main() в main()

Учитывая число N, задача состоит в том, чтобы написать С/С++ программу для вывода числа от N до 1 путем вызова функции main() с помощью рекурсии.

Примеры:

Input: N = 10
Output: 10 9 8 7 6 5 4 3 2 1

Input: N = 5
Output: 5 4 3 2 1

Рекомендую перед началом сначала попробовать свой подход в онлайн IDE, а затем можете перейти к решению ниже.

Подсказка алгоритма:

  1. Используйте статическую переменную для инициализации заданного числа N.
  2. Выведите число N и уменьшайте его.
  3. Вызовите функцию main() рекурсивно.

Ниже приведена реализация вышеуказанного подхода для C++:

Ответ

// C++ program to illustrate calling 
// main() function in main() itself 
#include "iostream" 
using namespace std; 
  
// Driver Code 
int main() 
{ 
    // Declare a static variable 
    static int N = 10; 
  
    // Condition for calling main() 
    // recursively untill N is 0 
    if (N > 0) { 
        cout << N << ' '; 
        N--; 
        main(); 
    } 
} 

Также вы можете посмотреть ответ для C:

Ответ

// C program to illustrate calling 
// main() function in main() itself 
#include "stdio.h" 
  
// Driver Code 
int main() 
{ 
  
    // Declare a static variable 
    static int N = 10; 
  
    // Condition for calling main() 
    // recursively 
    if (N > 0) { 
        printf("%d ", N); 
        N--; 
        main(); 
    } 
} 

Выведет:

10 9 8 7 6 5 4 3 2 1

Сложность во времени: O(N), где N - заданное число.

16 мая 2020 в 00:54 | Обновлено 7 ноября 2020 в 01:19 (редакция)
Опубликовано:
Статьи,

Добавить комментарий

Ваш E-mail не будет никому виден. Обязательные поля отмечены *