C++ 有计算阶乘的函数
时间: 2024-10-09 08:04:10 浏览: 90
它的执行流程如下图所示-信息学奥赛一本通-教程PPT课件(第五版)第6章 函数和递归(C++版)
在C++中,你可以创建一个函数来计算一个整数的阶乘。阶乘是一个正整数n与所有小于它的正整数相乘的结果,通常表示为n!。下面是一个简单的函数示例:
```cpp
#include <iostream>
// 定义计算阶乘的函数,传入一个整数作为参数
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0! 和 1! 等于1
return 1;
} else {
return n * factorial(n - 1); // 递归调用自身,直到达到基本情况
}
}
int main() {
int num;
std::cout << "请输入一个非负整数:";
std::cin >> num;
try {
unsigned long long result = factorial(num);
std::cout << "该数的阶乘是:" << result << std::endl;
} catch (std::overflow_error& e) {
std::cerr << "错误:阶乘结果超出long long范围!" << std::endl;
}
return 0;
}
```
在这个例子中,`factorial`函数使用了递归的方式计算阶乘。如果输入的数字较大,可能会导致`unsigned long long`类型的溢出,因此需要适当处理可能的溢出异常。
阅读全文