给定一个数字N ,任务是编写 C/C++ 程序,通过使用递归调用 main()函数来打印从 N 到 1 的数字。
例子:
Input: N = 10
Output: 10 9 8 7 6 5 4 3 2 1
Input: N = 5
Output: 5 4 3 2 1
方法:
- 使用静态变量初始化给定的数字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();
}
}
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 until N is 0
if (N > 0) {
cout << N << ' ';
N--;
main();
}
}
输出:
10 9 8 7 6 5 4 3 2 1
时间复杂度: O(N) ,其中 N 是给定的数字。