当前位置: 首页 > news >正文

P1009 阶乘之和

点击查看代码
#include<bits/stdc++.h>using namespace std;vector<int> A,s;
int n;//高精度加法的模板
vector<int> add(vector<int> A,vector<int> B)
{if(A.size()<B.size()) return add(B,A);vector<int> C;int t=0;//补位for(int i=0;i<A.size()||t;++i){t+=A[i];if(i<B.size()) t+=B[i];//缓存位C.push_back(t%10);//当前位t=t/10;//进位}return C;}//高精度乘法的模板
vector<int> mul(vector<int> A,int b)
{vector<int> C;int t=0;for(int i=0;i<A.size()||t;++i){if(i<A.size()) 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()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;string str="1";//初始化高精度数组,使得可以存储高精度,为后面做铺垫for(int i=str.size()-1;i>=0;--i) A.push_back(str[i]-'0');for(int i=1;i<=n;i++){A=mul(A,i);s=add(s,A);}for(int i=s.size()-1;i>=0;--i) cout<<s[i];
}
是一道高精度的题目,阶乘的数值以外的大,如果是12的阶乘就超过int的范围,如果是20就超过long long的范围 因此需要高精度来处理,本题让我对模板有了更深的理解,补位,缓存位,当前位,进位,最后去前导0,都是这套逻辑 模板自不必说,如果不是简单的模板题也要学会手动用字符串设置一个高精度数
http://www.gsyq.cn/news/56850.html

相关文章:

  • 洛谷 B4416:[GESP202509 四级] 最长连续段 ← sort+unique
  • 2025年11月GEO公司谁专业?硬核测评TOP10终极对比
  • 2025年11月GEO公司深度盘点:哪家做得好?10家服务商全景解析
  • 2025年11月GEO公司哪家强?热度榜TOP10硬核测评
  • 【CI130x 离在线】Linux平台从命名管道接收PCM格式数据并转为WAV文件——Python脚本实现
  • 2025年11月GEO服务商综合评测:哪家服务效果更优?
  • 2025年11月GEO公司深度盘点:怎么选?十大服务商权威发布
  • 2025年11月GEO服务商怎么选?深度盘点TOP10专业解析
  • 2025年11月GEO服务商选择指南:哪家好权威推荐
  • [课本配套源代码]
  • 苹果手机传文件到 windows 电脑
  • 11/21
  • 关于Git的多分支使用
  • 掌控Apple Silicon MacBook电池健康的神器
  • 立方数
  • Rust环境搭建
  • 20251117~20251123NOIP模拟赛
  • Java的第一个程序
  • 20232310 2025-2026-1 《网络与系统攻防技术》实验七实验报告
  • 完整教程:基于Python楼王争霸劳动竞赛数据处理分析
  • 【springboot线上零食舱系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案 - 详解
  • 2025.11.21博客
  • NVM 与 单节点下PM2进程守护 安装配置以及使用教程完整指南(含 Node.js 环境搭建)
  • 北大六院的诊断
  • django项目前端模版文件,在pycahrm无法使用ctrl+alt+l格式化代码的解决办法
  • QT:Qt5.14向文档输出表格--编译异常信息
  • 《程序员修炼之道》阅读笔记5
  • 2025.11.21 - A
  • 2025年新版ADB工具箱下载+驱动+ADB指令集+fastboot刷机ROOT程序
  • 与括号序列相关的 DP 笔记