恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

C++高精度|竞赛(加减乘除模板)

  • 首页
  • 资讯中心
  • /
  • C++高精度|竞赛(加减乘除模板)

相关资讯

Java Arrays.sort() 排序全解析:从升序降序到自定义对象排序 2026/8/15 11:37:30
Windows系统文件sxproxy.dll丢失找不到问题解决 2026/8/15 11:37:30
Windows系统文件swprv.dll丢失找不到问题解决 2026/8/15 11:37:30

最新资讯

TMSpeech 完整指南:免费开源的离线语音转文字实时字幕工具
PDF书签自动化管理:V0505与PdgCntEditor高效工作流详解
链路聚合实战指南:LACP与手工模式深度解析与配置
二分类结局Meta分析结果解读:合并OR值与RR值及异质性检验
房价影响因素的岭回归:共线性处理与系数收缩
构建LLMProvider抽象层:统一多模型API调用与韧性架构设计

今日推荐

内景 空间站内部 中国空间站 太空 内仓
重新定义数据接口:3个突破性场景让通达信数据读取更智能
5大网络安全实操平台,免费练手入门,轻松掌握攻防技能

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

C++高精度|竞赛(加减乘除模板)

发布时间:2026/8/15 11:37:30
C++高精度|竞赛(加减乘除模板) 高精度篇文章目录高精度篇1.1高精度核心原理1.2高精度加法1.3高精度减法1.4高精度乘法1.4.1高精度*低精度1.4.2高精度*高精度1.5高精度除法1.5.1低精度/低精度1.5.2高精度/低精度2.高精度快速幂1.1高精度核心原理适用场景数字超过 long long 范围超过1e18。高精度算法High Accuracy Algorithm是处理大数字的数学计算 方法。在一般的科学计算中会经常算到小数点后几百位或者更多存储规则统一规则全部运算通用用字符串读入大数转 vector 存每一位reverse 倒置低位存在下标 0运算结束删除前导0输出倒序输出1.2高精度加法P1601 高精度加法 - 洛谷从低位逐位相加记录进位最后处理剩余进位。#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second #define PLL pairll, ll #define YES coutYESendl; #define NO coutNOendl; using namespace std; vectorlla; vectorllb; string a1,b1; ll la,lb,lc; int main() { IOS cina1b1; laa1.size(); lbb1.size(); lcmax(la,lb)1; for(ll i0;ila;i) { a.push_back(a1[i]-0); } for(ll i0;ilb;i) { b.push_back(b1[i]-0); } reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); vectorllc(lc,0); for(ll i0;ilc;i) { c[i](a[i]b[i]); c[i1]c[i]/10; c[i]c[i]%10; } while(c.size()1c.back()0) { c.pop_back(); } for(ll ic.size()-1;i0;i--) { coutc[i]; } coutendl; // coutfixedsetprecision(x) ; return 0; }1.3高精度减法P2142 高精度减法 - 洛谷必须先比较大小大减小如果小数−大数交换两数最后输出负号逐位相减不够减向前借位删除前导0#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second #define PLL pairll, ll #define YES coutYESendl; #define NO coutNOendl; using namespace std; vectorlla; vectorllb; string a1,b1; ll la,lb,lc; bool cmp(string a1,string b1)\ { if(a1.size()!b1.size()) { return a1.size()b1.size(); } for(ll i0;ia1.size();i) { if(a1[i]!b1[i]) { return a1[i]b1[i]; } } return true; } int main() { IOS cina1b1; bool flagtrue; if(!cmp(a1,b1)) { swap(a1,b1); flagfalse; } laa1.size(); lbb1.size(); lcmax(la,lb); a.clear(); b.clear(); for(ll i0;ila;i) { a.push_back(a1[i]-0); } for(ll i0;ilb;i) { b.push_back(b1[i]-0); } reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); vectorllc(lc,0); ll t0; for(ll i0;ilc;i) { c[i]a[i]-t; if(ilb) { c[i]-b[i]; } if(c[i]0) { c[i]10; t1; } else { t0; } } while(c.size()1c.back()0) { c.pop_back(); } if(!flag) { cout-; } for(ll ic.size()-1;i0;i--) { coutc[i]; } coutendl; // coutfixedsetprecision(x) ; return 0; }1.4高精度乘法1.4.1高精度*低精度大数每一位 × 普通整数统一进位。#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); using namespace std; int main() { IOS string a1; ll x; cina1x; vectorlla; ll laa1.size(); for(ll i0;ila;i) { a.push_back(a1[i]-0); } reverse(a.begin(),a.end()); vectorllc; ll t0; for(ll i0;ila||t;i) { if(ila) ta[i]*x; c.push_back(t%10); t/10; } while(c.size()1c.back()0) { c.pop_back(); } for(ll ic.size()-1;i0;i) { coutc[i]; } coutendl; return 0; }1.4.2高精度*高精度L-A × B_河南萌新联赛2026第四场南阳理工学院c[ij] a[i] * b[j]结果数组长度 len(a) len(b)最后统一进位、去前导0#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second #define PLL pairll, ll #define YES coutYESendl; #define NO coutNOendl; using namespace std; vectorlla; vectorllb; string a1,b1; ll l1,l2; int main() { IOS cina1b1; l1a1.size(); l2b1.size(); for(char c:a1) { a.push_back(c-0); } for(char c:b1) { b.push_back(c-0); } reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); vectorllc(l1l2,0); for(ll i0;il1;i) { for(ll j0;jl2;j) { c[ij]a[i]*b[j]; } } ll t0; for(ll i0;ic.size();i) { tc[i]; c[i]t%10; t/10; } if(c.size()1c.back()0) { c.pop_back(); } for(ll ic.size()-1;i0;i--) { coutc[i]; } // coutfixedsetprecision(x) ; return 0; }1.5高精度除法P1480 A/B Problem高精度除法Ⅰ - 洛谷加减乘从低位下标0算除法必须从高位往低位算1.5.1低精度/低精度保留n位小数#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second #define PLL pairll, ll #define YES coutYESendl; #define NO coutNOendl; using namespace std; int main() { IOS ll a0; ll b0; ll n0;//保留小数个数 cinabn; couta/b.; ll ta%b; for(ll i0;in;i) { tt*10; coutt/b; tt%b; } // coutfixedsetprecision(x) ; return 0; }1.5.2高精度/低精度#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second #define PLL pairll, ll #define YES coutYESendl; #define NO coutNOendl; using namespace std; string s; ll b0; vectorlla; int main() { IOS cinsb; ll las.size(); vectorllc(la,0); for(ll i0;ila;i) { a.push_back(s[i]-0); } ll t0; for(ll i0;ila;i) { tt*10a[i]; if(tb) { c[i]t/b; tt%b; } else { c[i]0; } } ll id0; for(ll i0;ila;i) { if(c[i]!0) { idi; break; } } for(ll iid;ila;i) { coutc[i]; } cout......t; // coutfixedsetprecision(x) ; return 0; }高精度/高精度不常考2.高精度快速幂P1045 [NOIP 2003 普及组] 麦森数[P1045 NOIP 2003 普及组] 麦森数 - 洛谷题目给定 P求(2P-1)输出它的十进制位数输出最后 500 位每行 50 位一共 10 行高位补 0// #includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second const ll N500; const ll base10000; using namespace std; ll a[N]{0}; ll b[N]{0}; ll tmp[N]; void gjd2(ll a1[],ll b[]) { memset(tmp,0,sizeof(tmp)); for(ll i0;iN;i) { if(a1[i]0) { continue; } for(ll j0;ijN;j) { tmp[ij]a1[i]*b[j]; } } for(ll i0;iN-1;i) { tmp[i1]tmp[i]/10; tmp[i]%10; } tmp[N-1]%10; memcpy(a1,tmp,sizeof(tmp)); } void ksm(ll p) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); a[0]1; b[0]2; while(p) { if(p1) { gjd2(a,b); } p1; if(p) { gjd2(b,b); } } a[0]--; } int main() { IOS ll p; cinp; cout(int)(p*(log10(2)))1endl; ksm(p); ll cnt0; for(ll j499;j0;j--) { couta[j]; if(j%500) { coutendl; } } coutendl; return 0; }

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号