c++中求一个数的阶乘
时间: 2024-10-24 14:10:53 浏览: 8
在 C++ 中,计算一个数 n 的阶乘(factorial)通常使用递归或循环的方式。这里是一个简单的循环方法:
```cpp
#include <iostream>
using namespace std;
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // 阶乘的基本情况,0! 和 1! 都等于 1
unsigned long long result = 1;
for (int i = 2; i <= n; ++i) {
result *= i;
}
return result;
}
int main() {
int num;
cout << "请输入一个非负整数: ";
cin >> num;
cout << "该数字的阶乘是: " << factorial(num);
return 0;
}
```
在这个代码里,`factorial` 函数会接收一个整数 `n`,然后通过循环从 2 加到 `n`,每次都乘以当前的计数器结果,最后返回这个累乘的结果。
相关问题
c++求一个数的阶乘
在 C++ 中计算一个数的阶乘可以使用递归函数或者循环结构。这里给出一个使用循环的示例:
```cpp
#include <iostream>
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0和1的阶乘都是1
return 1;
} else {
unsigned long long result = 1; // 初始化结果为1
for (int i = 2; i <= n; ++i) { // 从2到n累乘
result *= i;
}
return result;
}
}
int main() {
int number;
std::cout << "请输入一个整数: ";
std::cin >> number;
if (number < 0) {
std::cout << "负数没有阶乘。\n";
} else {
std::cout << "该数的阶乘是: " << factorial(number) << "\n";
}
return 0;
}
```
在这个程序中,`factorial()` 函数接受一个整数 `n`,并返回它的阶乘。如果输入的是负数,程序会提示没有阶乘的概念。
c++ 求多个数的阶乘
以下是求多个数的阶乘的Python代码:
```python
def factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n-1)
def multi_factorial(*nums):
result = []
for num in nums:
result.append(factorial(num))
return result
print(multi_factorial(5, 6, 7, 8)) # 输出 [120, 720, 5040, 40320]
```
首先定义一个递归函数 `factorial`,用来计算单个数的阶乘。
然后定义 `multi_factorial` 函数,使用可变参数 `*nums` 来接收多个数,遍历这些数并调用 `factorial` 函数计算阶乘,将结果存入列表中并返回。
最后调用 `multi_factorial` 函数,传入参数 5、6、7、8,输出结果为 `[120, 720, 5040, 40320]`,即这些数的阶乘。
阅读全文