使用c++利用函数的递归调用,输入一个正整数,系统会计算出这个正整数的阶乘。
时间: 2024-03-20 12:41:54 浏览: 116
好的,这个问题很简单,可以使用递归来实现阶乘的计算。下面是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++编写一个简单的程序来计算12以内的所有正整数的阶乘?
在C++中,你可以使用递归函数来计算12以内的所有正整数的阶乘。下面是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
// 定义一个计算阶乘的递归函数
int factorial(int n) {
if (n == 0 || n == 1)
return 1; // 阶乘的基本情况,0和1的阶乘都是1
else
return n * factorial(n - 1); // 递归调用自身,每次减一
}
int main() {
for (int i = 1; i <= 12; ++i) {
cout << "The factorial of " << i << " is " << factorial(i) << endl;
}
return 0;
}
```
在这个程序中,`factorial()`函数接收一个整数作为输入,并返回该数的阶乘。在`main()`函数里,我们遍历从1到12的所有数字,调用`factorial()`并打印出结果。
c++:输入一个正整数N,输出N的阶乘。
在C++中,计算一个正整数N的阶乘(Factorial),意味着将所有小于及等于N的正整数相乘。这个过程可以用递归或者循环实现,下面是一个简单的循环版本的代码示例:
```cpp
#include <iostream>
// 函数声明,用于计算阶乘
unsigned long long factorial(int N);
int main() {
int N;
std::cout << "请输入一个正整数: ";
std::cin >> N;
// 检查输入是否合法
if (N < 0) {
std::cout << "输入错误,阶乘只对正整数有意义。\n";
return 1;
}
// 计算并输出阶乘
unsigned long long result = factorial(N);
std::cout << "N的阶乘是: " << result << "\n";
return 0;
}
// 阶乘计算函数
unsigned long long factorial(int N) {
// 初始化阶乘为1
unsigned long long fact = 1;
// 循环从1累乘到N
for (int i = 1; i <= N; ++i) {
fact *= i;
}
return fact;
}
```
这段代码首先获取用户输入的正整数N,然后调用`factorial`函数计算阶乘。如果输入不是正整数,会给出提示并退出。在`factorial`函数中,我们使用了一个`for`循环,每次迭代都将当前的积乘以(i+1),直到达到N。
阅读全文