c++输入一个正整数,使用while语句求n!printf输出,n!=123*…*n
时间: 2024-09-29 07:12:58 浏览: 16
当你想要在 C++ 中使用 while 循环计算并打印一个正整数 n 的阶乘 (n!),你可以按照以下步骤编写程序:
```cpp
#include <iostream>
int factorial(int n) {
int result = 1;
while(n > 1) {
result *= n;
n--;
}
return result;
}
int main() {
int number;
std::cout << "请输入一个正整数: ";
std::cin >> number;
// 检查输入是否为正整数
if(number <= 0) {
std::cerr << "错误: 输入必须是正整数." << std::endl;
return 1;
}
long long factorial_value = factorial(number); // 使用 long long 类型来存储大数值,防止溢出
printf("阶乘结果: %lld\n", factorial_value);
// 验证阶乘值是否等于特定条件(这里假设是123 * ... * n)
if (factorial_value != 123 * number) {
std::cout << "阶乘并不等于 123 * " << number << "." << std::endl;
}
return 0;
}
```