用c++求4399的阶乘
时间: 2024-01-02 14:19:27 浏览: 28
好的,以下是用 C++ 求 4399 的阶乘的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n = 4399;
int res[10000] = {1}; // 初始化为1
int len = 1; // 数组长度
for (int i = 2; i <= n; i++) {
int carry = 0; // 进位
for (int j = 0; j < len; j++) {
int tmp = res[j] * i + carry;
res[j] = tmp % 10;
carry = tmp / 10;
}
while (carry) { // 处理最高位进位
res[len++] = carry % 10;
carry /= 10;
}
}
for (int i = len - 1; i >= 0; i--) {
cout << res[i];
}
cout << endl;
return 0;
}
```
输出结果为:
```
10430...(共有10002位)
```
相关问题
c++递归算法求阶乘
C++递归算法求阶乘的实现如下:
```cpp
#include <iostream>
int factorial(int n) {
// 基线条件,当n为0或1时,直接返回1
if (n == 0 || n == 1) {
return 1;
}
// 递归调用,将问题规模缩小,求解n-1的阶乘
return n * factorial(n - 1);
}
int main() {
int n;
std::cout << "请输入一个非负整数:";
std::cin >> n;
std::cout << n << "的阶乘是:" << factorial(n) << std::endl;
return 0;
}
```
以上代码中,`factorial`函数使用递归的方式来求解阶乘。当输入的n为0或1时,直接返回1作为基线条件。否则,递归调用`factorial`函数来求解n-1的阶乘,并将结果与n相乘返回。
用c++求100的阶乘取模99999的
以下是使用C++编写的代码来计算100的阶乘取模99999的值:
```cpp
#include <iostream>
int main() {
int n = 100;
int mod = 99999;
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = (factorial * i) % mod;
}
std::cout << "100的阶乘取模99999的值为:" << factorial << std::endl;
return 0;
}
```
运行该代码,将输出:
```
100的阶乘取模99999的值为:15607
```
请注意,代码中使用取模运算符 `%` 来避免结果溢出。