在C++中用while,do-while,for循环完成计算n!。要求n从键盘输入,并输出结果。
时间: 2024-11-09 10:17:36 浏览: 9
在C++中,你可以使用while、do-while或for循环来计算一个数的阶乘(n!)。这里是一个简单的示例:
```cpp
#include <iostream>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // 阶乘的基本情况
unsigned long long result = 1;
while (n > 1) { // 使用while循环
result *= n;
n--;
}
return result;
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
do { // 或者使用do-while保证至少执行一次循环
unsigned long long fact = factorial(n);
std::cout << "n! = " << fact << std::endl;
} while (std::cin >> n); // 读取下一行,防止因用户输入非数字导致程序异常
for (int i = 1; i <= n; ++i) { // 使用for循环实现
unsigned long long fact = factorial(i);
std::cout << i << "! = " << fact << std::endl;
}
return 0;
}
```
在这个例子中,我们首先定义了一个递归函数`factorial`用于计算阶乘,然后在`main`函数中通过三种循环方式分别求出用户输入的n的阶乘。
阅读全文