计算1+2!+3!+...+n!的和
Code
点击查看代码
#include<iostream>
#include<vector>
using namespace std;
typedef vector<int> VI;
int n;
VI add(VI &A, VI &B)
{
if (A.size() < B.size()) return add(B, A);
VI C;
int t=0;
for (int i = 0; i < A.size(); i ++ )
{
t += A[i];
if (i < B.size()) t += B[i];
C.push_back(t % 10);
t /= 10;
}
if (t) C.push_back(t);
return C;
}
VI mul(VI &A,int b){
VI C;
int t = 0;
for(int i = 0; i <= A.size()-1 || t;i++){
if(i <= A.size()-1)t += A[i] * b;
C.push_back(t % 10);
t /= 10;
}
while(C.size() > 1&&C.back() == 0)C.pop_back();
return C;
}
int main(){
VI A;
VI C;
C.push_back(0);
cin >> n;
for(int i = 1; i <= n; i ++){
A.erase(A.begin(),A.end());
A.push_back(1);
for(int j = i;j >= 1; j--){
A = mul(A,j);
}
C = add(C,A);
}
for(int i = C.size() - 1; i >= 0; i -- )cout << C[i];
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程