用C++写用递归算法求10的阶乘
时间: 2023-05-22 12:04:15 浏览: 115
下面是用 C 写的递归算法求10的阶乘的代码:
```
#include<stdio.h>
int fact(int n) {
if (n == 0) { // 边界条件
return 1;
} else {
return n * fact(n - 1); // 递归调用
}
}
int main() {
int n = 10;
int result = fact(n);
printf("%d的阶乘为%d\n", n, result);
return 0;
}
```
这段代码的输出结果是:
```
10的阶乘为3628800
```
相关问题
c++递归算法求阶乘
C++递归算法求阶乘的实现如下:
```cpp
#include <iostream>
int factorial(int n) {
// 基线条件,当n为0或1时,直接返回1
if (n == 0 || n == 1) {
return 1;
}
// 递归调用,将问题规模缩小,求解n-1的阶乘
return n * factorial(n - 1);
}
int main() {
int n;
std::cout << "请输入一个非负整数:";
std::cin >> n;
std::cout << n << "的阶乘是:" << factorial(n) << std::endl;
return 0;
}
```
以上代码中,`factorial`函数使用递归的方式来求解阶乘。当输入的n为0或1时,直接返回1作为基线条件。否则,递归调用`factorial`函数来求解n-1的阶乘,并将结果与n相乘返回。
用C++写一个n的阶乘的递归算法
在C++中,你可以使用递归的方式来编写计算n的阶乘的函数。递归是一种通过函数自身调用来解决问题的技术,在这个例子中,我们将基本情况设为当n等于0或1时,阶乘结果为1;对于其他正整数n,阶乘是n乘以前面所有自然数的积。
下面是一个简单的C++递归函数实现:
```cpp
#include<iostream>
using namespace std;
// 递归函数计算n的阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 基本情况,阶乘为1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,n阶乘 = n * (n-1)阶乘
}
}
int main() {
int num;
cout << "请输入一个非负整数: ";
cin >> num;
// 检查输入是否合法
if (num < 0) {
cout << "错误:阶乘只对非负整数定义." << endl;
} else {
unsigned long long result = factorial(num);
cout << "The factorial of " << num << " is: " << result << endl;
}
return 0;
}
```
阅读全文