从键盘输入一个正整数n,求出n的阶乘,并输出在屏幕上。C++
时间: 2024-10-09 10:14:40 浏览: 49
在C++中,你可以使用循环结构如for或while来计算一个正整数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 n;
cout << "请输入一个正整数: ";
cin >> n;
// 检查输入是否有效
if (cin.fail()) {
cerr << "错误: 输入不是正整数." << endl;
return 1;
}
long long result = factorial(n);
cout << "该数的阶乘是: " << result << endl;
return 0;
}
```
在这个程序中,`factorial`函数递归地计算阶乘,如果输入的n小于等于1,则返回1作为基本情况。`main`函数中首先读取用户的输入,然后检查输入是否合法,最后调用`factorial`函数并显示结果。
相关问题
设计一个求阶乘的fac函数,然后在从键盘上接收一个正整数,调用此函数输出此数的阶乘值。代码
好的,以下是一个求阶乘的fac函数的代码,以及调用该函数的代码:
```c++
#include <iostream>
using namespace std;
int fac(int n) {
if (n <= 1) {
return 1;
}
return n * fac(n-1);
}
int main() {
int n;
cout << "请输入一个正整数:";
cin >> n;
cout << n << "的阶乘是:" << fac(n) << endl;
return 0;
}
```
函数fac采用递归的方式求解,当n<=1时,返回1,否则返回n*fac(n-1)。在main函数中,先输入一个正整数n,然后调用fac函数求解n的阶乘,最终输出结果。
编程实现:从键盘随机输入一个正整数n,统计前n个数的阶乘的和。如n=3,求1!+2!+3!
好的,我可以帮你解决这个问题。以下是C++语言的代码实现:
#include<iostream>
using namespace std;
int main()
{
int n, sum = 0, fac = 1;
cout<<"请输入一个正整数n:";
cin>>n;
for(int i = 1; i <= n; i++)
{
fac *= i;
sum += fac;
}
cout<<"前"<<n<<"个数的阶乘的和为:"<<sum<<endl;
return 0;
}
在运行程序时,你可以输入任何一个正整数n并回车,程序将会统计前n个数的阶乘的和并输出结果。
阅读全文