一、引言:
- 如果这题范围很小,那么这题思路非常简单,代码如下:
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int b = 1;
int c = 1;
for (int i = 2; i <= n; i++)
{
b = b * i;
c = c + b;
}
cout << c << endl;
return 0;
}
- 然而,数据范围规定为50,50的阶乘,
int
和long long
均肯定会爆。 - 所以此题需要用到高精度。
二、高精度加法和高精度减法的实现
高精度加法:
vector<int> add(vector<int>& A, vector<int>& B)
{
int t = 0;
vector<int> C;
for (int i = 0; i < A.size() || i < B.size(