C++ 用do whⅰle 实现n!
时间: 2024-12-13 21:27:57 浏览: 2
c++ 求n!、算24点、汉诺塔
在C++中,可以使用`do-while`循环结合递归来计算阶乘(n!),因为阶乘通常涉及到一个重复的过程,即从n开始,逐次乘以每个小于它的正整数,直到乘到1为止。这里是一个简单的示例:
```cpp
#include <iostream>
// 使用 do-while 循环和递归实现阶乘
unsigned long long factorial(int n) {
unsigned long long result = 1;
int i = n;
// 遍历从1到n的数字
do {
if (i > 1)
result *= i; // 递归更新结果
i--;
} while (i >= 1);
return result;
}
int main() {
int n;
std::cout << "请输入一个非负整数:";
std::cin >> n;
if (n < 0) {
std::cout << "输入错误,阶乘只对非负整数有效。\n";
return 0;
}
unsigned long long fact = factorial(n);
std::cout << n << "! = " << fact << "\n";
return 0;
}
```
阅读全文