使用c++利用函数的递归调用,输入一个正整数,系统会计算出这个正整数的阶乘。
时间: 2024-03-20 09:41:54 浏览: 17
好的,这个问题很简单,可以使用递归来实现阶乘的计算。下面是C++代码示例:
```c++
#include <iostream>
using namespace std;
int factorial(int n)
{
if (n == 1)
return 1;
else
return n * factorial(n-1);
}
int main()
{
int n;
cout << "Enter a positive integer: ";
cin >> n;
cout << "Factorial of " << n << " is " << factorial(n);
return 0;
}
```
这段代码中,我们定义了一个 `factorial` 函数,它接收一个正整数参数 `n`,并使用递归调用自身来计算 `n` 的阶乘。如果 `n` 等于 1,递归终止并返回 1;否则,函数返回 `n * factorial(n-1)`。
在 `main` 函数中,我们首先读入一个正整数 `n`,然后调用 `factorial` 函数计算 `n` 的阶乘,并输出结果。
相关问题
用c++语言设计一个阶乘类recursion,重新调用运算符,计算一个正整数的阶乘
以下是用C语言设计的一个阶乘类递归函数,可以计算一个正整数的阶乘:
```c
#include <stdio.h>
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n = 5;
int result = factorial(n);
printf("%d! = %d", n, result);
return 0;
}
```
这个程序的输出应该是 "5! = 120"。
设计一个求阶乘的fac函数,然后在从键盘上接收一个正整数,调用此函数输出此数的阶乘值。代码
好的,以下是一个求阶乘的fac函数的代码,以及调用该函数的代码:
```c++
#include <iostream>
using namespace std;
int fac(int n) {
if (n <= 1) {
return 1;
}
return n * fac(n-1);
}
int main() {
int n;
cout << "请输入一个正整数:";
cin >> n;
cout << n << "的阶乘是:" << fac(n) << endl;
return 0;
}
```
函数fac采用递归的方式求解,当n<=1时,返回1,否则返回n*fac(n-1)。在main函数中,先输入一个正整数n,然后调用fac函数求解n的阶乘,最终输出结果。