用C++写一个用递归方法求n!的程序,
时间: 2023-12-27 17:20:06 浏览: 30
好的,下面是递归方法求n!的C++程序:
```c++
#include<iostream>
using namespace std;
int factorial(int n)
{
if(n == 0)
return 1;
else
return n * factorial(n-1);
}
int main()
{
int n;
cout << "请输入一个整数n:";
cin >> n;
cout << n << "! = " << factorial(n) << endl;
return 0;
}
```
程序中使用了递归方法求n!,当n等于0时,递归结束,返回1;否则,递归计算n-1的阶乘,并将结果乘以n,得到n!的值。在主函数中,用户输入一个整数n,程序输出n!的值。
相关问题
用c++写一个递归程序
好的,下面是一个用C语言编写的递归程序,用于计算斐波那契数列的第n个数:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n = 10; // 计算斐波那契数列的第10个数
int result = fibonacci(n);
printf("斐波那契数列的第%d个数是%d\n", n, result);
return 0;
}
```
这个程序使用了递归的思想,计算斐波那契数列的第n个数,如果n小于或等于1,则直接返回n,否则递归计算前两个数的和。在main函数中调用fibonacci函数,并输出计算结果。
c++用递归算法求 1!+2!+3! +...+n!
可以使用递归算法来解决这个问题,具体实现如下:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n <= 1) { // 基线条件
return 1;
}
else { // 递归条件
return n * factorial(n - 1);
}
}
int sum_of_factorials(int n) {
if (n <= 1) { // 基线条件
return 1;
}
else { // 递归条件
return factorial(n) + sum_of_factorials(n - 1);
}
}
int main() {
int n = 5;
int sum = sum_of_factorials(n);
cout << "1!+2!+3!+...+" << n << "! = " << sum << endl;
return 0;
}
```
在这个程序中,我们定义了两个递归函数 `factorial` 和 `sum_of_factorials`。`factorial` 函数用于计算阶乘,`sum_of_factorials` 函数用于计算阶乘的和。在每个函数中,我们都有一个基线条件和一个递归条件。如果 `n` 的值小于或等于 1,我们将返回 1 作为基线条件。否则,我们将根据递归条件进行计算。在 `sum_of_factorials` 函数中,我们将先计算 n 的阶乘,然后将它加到 n-1 的阶乘和中。最后,在主函数中,我们将调用 `sum_of_factorials` 函数来计算 1!+2!+3!+...+n! 的值,并将其打印出来。