Учитывая число 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, а затем можете перейти к решению ниже.
Подсказка алгоритма:
- Используйте статическую переменную для инициализации заданного числа N.
- Выведите число N и уменьшайте его.
- Вызовите функцию
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 - заданное число.