C++输入一个正整数,使用while语句求n!,n!=123*…*n
时间: 2024-09-29 15:13:07 浏览: 51
在C++中,如果你想让用户输入一个正整数,并通过while循环计算阶乘(n!),直到满足条件 n != 123 * ... * n (这里的乘积由用户输入的数字构成),你可以这样做:
```cpp
#include <iostream>
using namespace std;
// 计算阶乘的辅助函数
long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int num, product = 1;
cout << "请输入一个正整数: ";
cin >> num;
while (true) {
product *= num; // 更新乘积
long long fact = factorial(num); // 计算当前n的阶乘
if (fact == product) { // 如果阶乘等于当前乘积,则跳出循环
break;
} else if (fact > product) { // 如果阶乘大于当前乘积,说明已经找到了123 * ... * n
cout << "已找到符合条件的结果: " << fact << endl;
break;
}
cout << "当前乘积: " << product << ", 阶乘: " << fact << endl;
num++; // 提供下一个数进行比较
}
return 0;
}
```
在这个程序中,我们首先获取用户的输入,然后在一个无限循环中不断更新乘积和阶乘,直到阶乘不再等于当前的乘积。如果找到相等的情况,就表示找到了123 * ... * n,否则继续增加n并检查下一个阶乘。
阅读全文