1.编写一个程序,要求读入一个非负整数,然后计算和打印它的阶乘;
时间: 2024-12-19 13:21:17 浏览: 12
要编写一个程序来计算并打印给定非负整数的阶乘,你可以使用递归或循环的方式来实现。这里提供一个用循环的示例,因为它通常更高效且易于理解:
```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 = 1; i <= n; ++i) {
result *= i; // 每次迭代都将当前数字乘到结果上
}
return result;
}
}
int main() {
int num;
std::cout << "Enter a non-negative integer: ";
std::cin >> num;
if (num < 0) {
std::cerr << "Error: Negative numbers don't have factorials." << std::endl;
} else {
unsigned long long fact = factorial(num);
std::cout << "The factorial of " << num << " is: " << fact << std::endl;
}
return 0;
}
```
在这个程序中,`factorial` 函数接收一个整数参数 `n`,如果 `n` 是0或1,它直接返回1(因为0!和1!等于1)。否则,它初始化一个结果变量为1,然后用一个循环从1迭代到 `n`,每次都将当前数值乘到结果上。
在`main` 函数中,我们首先读取用户的输入,然后检查是否是非负数。如果不是,我们会输出错误信息;如果是非负数,我们就调用 `factorial` 函数并打印结果。
阅读全文