C++输入一个正整数,使用while和printf输出语句求n!,n!=1*2*3*…*n
时间: 2024-09-29 13:13:05 浏览: 44
输出n以内的所有素数 c语言:找出N以内的所有素数
在C++中,你可以通过while循环和递归的方式来计算并打印一个正整数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); // 递归调用,n! = n * (n-1)!
}
}
int main() {
int num;
std::cout << "请输入一个正整数: ";
std::cin >> num;
while (num > 0) { // 使用while循环,防止大数溢出
printf("%llu ", factorial(num));
num--;
}
printf("\n");
return 0;
}
```
在这个程序中,`factorial()`函数用于计算阶乘,而主函数`main()`负责获取用户输入,并利用while循环逐步打印结果。
阅读全文