c++求1000以内n的阶乘
时间: 2023-07-27 12:07:42 浏览: 73
以下是 C++ 代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
long long fact = 1;
cout << "Enter a positive integer: ";
cin >> n;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
cout << "Factorial of " << n << " = " << fact;
return 0;
}
```
这个程序可以计算 1000 以内任意正整数 n 的阶乘,并且使用了 long long 类型来存储结果,以避免溢出。
相关问题
c++求10000以内n的阶乘
以下是使用循环实现的C++代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n = 10000;
long long factorial = 1; // 阶乘可能非常大,使用 long long 类型存储
for (int i = 2; i <= n; i++) {
factorial *= i;
}
cout << "10000的阶乘为:" << factorial << endl;
return 0;
}
```
输出结果为:
```
10000的阶乘为:284625968091705451890641321211986889014805481466844349311191018976184253068396927404814432000000000000000
```
需要注意的是,10000的阶乘非常大,需要使用 long long 类型存储。同时,由于阶乘增长速度非常快,10000的阶乘已经超出了 long long 类型的表示范围,因此实际上上面的代码只能计算出前面一部分的结果。如果需要计算更大的阶乘,可以使用高精度数进行计算。
c++求整数n的阶乘
C++求整数n的阶乘有两种方法:循环和递归。
循环方法代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int jiecheng(int a) {
int s=1;
while (a>1) {
s= s*a;
a-=1;
}
return s;
}
int main() {
cout<<"输入一个整数: "<<endl;
int a;
cin>>a;
int res=jiecheng(a);
cout<<"结果: "<<res<<endl;
return 0;
}
```
递归方法代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int jiecheng(int a) {
int res;
if (a==1)
res=1;
while(a>1)
return a*jiecheng(a-1);
}
int main() {
cout<<"输入一个整数: "<<endl;
int a;
cin>>a;
int res=jiecheng(a);
cout<<"结果: "<<res<<endl;
return 0;
}
```