news 2026/4/24 21:49:06

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/21 10:48:40

2026年AI开发者必学:开源语音识别模型部署核心技能一文详解

2026年AI开发者必学&#xff1a;开源语音识别模型部署核心技能一文详解 1. 引言&#xff1a;语音识别技术的演进与实战需求 随着大模型和边缘计算的发展&#xff0c;语音识别&#xff08;ASR&#xff09;已从实验室走向实际生产环境。在会议记录、智能客服、教育转录等场景中…

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

贪心算法与回溯算法详解

一、贪心算法深度解析1.1 贪心算法核心思想贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最优&#xff08;最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最优的算法策略。贪心算法的基本特性&#xff1a;贪心选择性质…

作者头像 李华
网站建设 2026/4/17 16:31:47

通义千问2.5-7B部署卡顿?vLLM并发优化技巧详解

通义千问2.5-7B部署卡顿&#xff1f;vLLM并发优化技巧详解 1. 背景与问题定位 1.1 通义千问2.5-7B-Instruct 模型特性回顾 通义千问 2.5-7B-Instruct 是阿里于 2024 年 9 月发布的 70 亿参数指令微调模型&#xff0c;定位为“中等体量、全能型、可商用”的高性能开源大模型。…

作者头像 李华
网站建设 2026/4/17 15:41:18

通义千问3-4B优化技巧:RTX3060推理速度提升秘籍

通义千问3-4B优化技巧&#xff1a;RTX3060推理速度提升秘籍 1. 引言&#xff1a;为何关注Qwen3-4B在消费级显卡上的性能 随着大模型从云端向端侧下沉&#xff0c;如何在消费级硬件上实现高效推理成为开发者和AI应用落地的关键挑战。通义千问3-4B-Instruct-2507&#xff08;Qw…

作者头像 李华
网站建设 2026/4/22 0:05:29

MGeo实战技巧:如何修改推理.py脚本自定义输入输出格式

MGeo实战技巧&#xff1a;如何修改推理.py脚本自定义输入输出格式 1. 背景与应用场景 在实体对齐任务中&#xff0c;地址数据的标准化和相似度匹配是关键环节。阿里开源的 MGeo 模型专注于中文地址领域的语义理解与相似度计算&#xff0c;能够高效识别不同表述但指向同一地理…

作者头像 李华
网站建设 2026/4/17 5:59:09

cv_unet_image-matting输出目录管理:outputs文件夹结构解析

cv_unet_image-matting输出目录管理&#xff1a;outputs文件夹结构解析 1. 引言 1.1 背景与应用场景 在基于U-Net的图像抠图项目中&#xff0c;cv_unet_image-matting 提供了一套完整的WebUI二次开发方案&#xff0c;支持单张及批量人像抠图。该系统由开发者“科哥”构建&am…

作者头像 李华