news 2026/4/18 3:35:43

c++高精度模板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c++高精度模板

高精加:

思路:用整型数组相加、输出

#include<bits/stdc++.h> using namespace std; int main(){ int a[10090]={0},b[10090]={0}; string s1,s2; cin>>s1>>s2; for(int i=s1.size()-1;i>=0;i--){ a[s1.size()-i]=s1[i]-'0'; } for(int i=s2.size()-1;i>=0;i--){ b[s2.size()-i]=s2[i]-'0'; } int i=1; for(i=1;i<=max(s1.size(),s2.size());i++){ a[i]+=b[i]; if(a[i]>=10){ a[i+1]+=a[i]/10; a[i]%=10; } } for(int j=i;j>=1;j--){ if(j==i&&a[j]==0){ continue; } cout<<a[j]; } }

高精减:

思路:

#include<bits/stdc++.h> using namespace std; int main(){ int a[10090]={0},b[10090]={0}; string s1,s2; cin>>s1>>s2; if(s1.size()<s2.size()){ cout<<"-"; string t; t=s1; s1=s2; s2=t; }else if(s1.size()==s2.size()){ if(s1<s2){ cout<<"-"; string t; t=s1; s1=s2; s2=t; } } for(int i=s1.size()-1;i>=0;i--){ a[s1.size()-i]=s1[i]-'0'; } for(int i=s2.size()-1;i>=0;i--){ b[s2.size()-i]=s2[i]-'0'; } int i=1; for(i=1;i<=max(s1.size(),s2.size());i++){ a[i]-=b[i]; if(a[i]<0){ a[i+1]-=1; a[i]+=10; } } bool f=1; for(int j=i-1;j>=1;j--){ if(a[j]==0&&f){ continue; }else{ f=0; cout<<a[j]; } } if(f){ cout<<0; } }

在前面加上了结果为负的判断,如a>b,则a-b=-(b-a),所以先输出负号,然后a、b交换,运算同加法。

高精乘:

思路:将b的每一位与a相乘的结果求出,然后利用高精加算出结果。

温馨提示:博主码力不足,又懒得改,所以高精乘目前只适配

#include<bits/stdc++.h> using namespace std; struct type{ int c[1000]={0}; }sum[1000]; int main(){ int a[500]={0},b[500]={0}; string s1,s2; cin>>s1>>s2; for(int i=s1.size()-1;i>=0;i--){ a[s1.size()-i]=s1[i]-'0'; } for(int i=s2.size()-1;i>=0;i--){ b[s2.size()-i]=s2[i]-'0'; } int i=1; for(i=1;i<=s1.size();i++){ for(int j=1;j<=s2.size();j++){ sum[i].c[i+j-1]=a[i]*b[j]; } } for(i=1;i<=s1.size();i++){ for(int j=1;j<=s2.size()+s1.size();j++){ sum[i].c[j+1]+=sum[i].c[j]/10; sum[i].c[j]%=10; } } for(i=1;i<=s1.size();i++){ for(int j=1;j<=s1.size()+s2.size();j++){ sum[s1.size()+1].c[j]+=sum[i].c[j]; if(sum[s1.size()+1].c[j]>=10){ sum[s1.size()+1].c[j+1]+=sum[s1.size()+1].c[j]/10; sum[s1.size()+1].c[j]%=10; } } } bool f=1; for(int j=s1.size()+s2.size();j>=1;j--){ if(f&&sum[s1.size()+1].c[j]==0){ continue; } f=0; cout<<sum[s1.size()+1].c[j]; } }

如有不足,请在评论区分享您的思路!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:31:17

LobeChat GPU配置指南:最佳算力方案提升推理效率

LobeChat GPU配置指南&#xff1a;最佳算力方案提升推理效率 LobeChat 是一个开源、高性能的聊天机器人框架&#xff0c;支持语音合成、多模态交互以及可扩展的插件系统。其核心优势在于能够一键部署私有化的 ChatGPT 或大语言模型&#xff08;LLM&#xff09;网络应用&#x…

作者头像 李华
网站建设 2026/4/16 15:20:48

通义千问2.5-0.5B实战:跨平台模型部署解决方案

通义千问2.5-0.5B实战&#xff1a;跨平台模型部署解决方案 1. 引言&#xff1a;轻量级大模型的现实需求与技术突破 随着人工智能应用向移动端和边缘设备延伸&#xff0c;传统大模型因高算力、高内存消耗难以在资源受限环境中落地。尽管性能强大&#xff0c;但百亿参数以上的模…

作者头像 李华
网站建设 2026/3/17 1:41:26

电子发票批量提取导出合并助手

还在为发票管理而烦恼&#xff1f; 每月堆积如山的发票需要整理&#xff1f;手工录入发票信息耗时费力&#xff1f;数据统计汇总让人头疼&#xff1f; 发票助手为您提供一站式智能解决方案&#xff0c;让发票管理变得简单高效&#xff01; 下载地址&#xff1a;https://weiji…

作者头像 李华
网站建设 2026/3/27 8:59:10

外网暴露GLM-4.6V-Flash-WEB服务时必须注意的安全事项

外网暴露GLM-4.6V-Flash-WEB服务时必须注意的安全事项 在成功部署 GLM-4.6V-Flash-WEB 并实现本地推理后&#xff0c;许多开发者会考虑将其开放至公网&#xff0c;以便远程访问或集成到线上系统中。然而&#xff0c;一旦服务暴露于外网&#xff0c;安全风险也随之而来——从恶…

作者头像 李华
网站建设 2026/4/5 19:35:33

fft npainting lama处理时间过长?图像压缩优化实战建议

fft npainting lama处理时间过长&#xff1f;图像压缩优化实战建议 1. 问题背景与场景分析 在使用基于 fft npainting lama 的图像修复系统进行图片重绘、物品移除或水印清除等操作时&#xff0c;用户普遍反馈处理时间过长的问题。尤其是在高分辨率图像&#xff08;如超过200…

作者头像 李华
网站建设 2026/4/15 13:34:22

SGLang-v0.5.6环境部署:Ubuntu下CUDA兼容性避坑指南

SGLang-v0.5.6环境部署&#xff1a;Ubuntu下CUDA兼容性避坑指南 1. 引言 随着大语言模型&#xff08;LLM&#xff09;在实际业务场景中的广泛应用&#xff0c;如何高效、稳定地部署模型推理服务成为工程落地的关键挑战。SGLang-v0.5.6作为新一代结构化生成语言推理框架&#…

作者头像 李华