定义一个计算n!的函数 其中n是自然数,函数返回值类型为long 在主函数中调用该函数
时间: 2024-12-23 16:24:25 浏览: 3
code.zip_C/C++__C/C++_
在C++语言中,你可以定义一个计算阶乘的`long long`类型的函数,因为`n!`可能会非常大,超过`int`类型的范围。下面是一个简单的例子:
```cpp
#include <iostream>
// 定义计算阶乘的函数
long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // 阶乘的基本情况,0和1的阶乘都是1
else
return n * factorial(n - 1); // 递归调用,n! = n * (n-1)!
}
int main() {
int num;
std::cout << "请输入一个自然数: ";
std::cin >> num;
try {
long long result = factorial(num);
std::cout << "The factorial of " << num << " is: " << result << std::endl;
} catch (std::overflow_error& e) {
std::cerr << "Error: The result is too large for a `long long`." << std::endl;
}
return 0;
}
```
在这个程序中,我们首先检查基本情况(0和1的阶乘),然后通过递归调用自身来计算更大的阶乘。在`main`函数中,用户输入一个数值,然后调用`factorial`函数并打印结果。如果计算的结果超过了`long long`的最大范围,会捕获`std::overflow_error`异常。
阅读全文