首页 > 其他分享 >高精度加法笔记

高精度加法笔记

时间:2024-10-06 13:32:55浏览次数:7  
标签:temp 高精度 int back 笔记 vector 加法 倒序 size

vector<int> u; //储存a倒序的每个数
vector<int> v; //储存b倒序的每个数
vector<int> add(vector<int> m, vector<int> n) {//高精度加法
	vector<int> temp;//temp数组存储相加后的每个数
	int t=0;//t作为每个数相加的和
	for (int i = 0; i < m.size() || i < n.size(); i++) {//遍历u,v数组
		if (i < m.size()) t += m[i];
		if (i < n.size()) t += n[i];
		temp.push_back(t % 10);//向temp尾部中塞入每个数相加后的最后一位
		t /= 10;//计算进位值存入下一位的计算
	}
	if (t > 0) {//当最后两个数相加后仍需要进位
		temp.push_back(1);//向temp尾部塞入1
	}
	return temp;
}

int main() {
	string a, b;
	cin >> a >> b;
	/*例:a=123456,b=123456*/
	for (int i = a.size() - 1; i >=0; i--) u.push_back(a[i] - '0');//将字符串形式的a,b转换为int十进制形式
	for (int i = b.size() - 1; i >=0; i--) v.push_back(b[i] - '0');
	//从a,b最后一位开始读取,逐个塞入u,v的尾部
	/*例:u=654321,v=654321*/
	vector<int> c = add(u, v);
	for (int i = c.size() - 1; i >= 0; i--) printf("%d", c[i]);//计算后再次倒序输出c
	/*例:c=219642,输出246912为最后答案*/
	return 0;
}

//模拟竖式计算过程,重点在倒序相加,便于计算机处理

//使用vector动态数组,节省空间

标签:temp,高精度,int,back,笔记,vector,加法,倒序,size
From: https://www.cnblogs.com/dianman/p/18449021

相关文章

  • 折腾笔记[2]-跨平台打包tauri程序
    摘要在macOS(arm64)平台打包tauri程序到Windows(amd64)平台.AbstractPackagingaTauriapplicationfortheWindows(amd64)platformfrommacOS(arm64).关键信息构建平台:macOS14.6.1(arm64)目标平台:Window10(amd64)原理简介nsis简介[https://nsis.sourceforg......
  • 归并排序笔记
    inttmp[];//temp数组存储数据voidmerge_sort(inta[],intl,intr){ if(l>=r)return;//递归到最后只有一个数返回 intmid=(l+r)/2;//确定分界点l~midmid+1~r; merge_sort(a,l,mid); merge_sort(a,mid+1,r);//递归左右两边 intk=0,i=l,j=mi......
  • Living-Dream 系列笔记 第80期(国庆集训合集)
    IDDFS使用场景:搜索树非常大而答案的深度较浅,一般在\(20\)以内,且dfs会TLE,bfs会MLE。算法原理:以dfs的形式搜索;设定搜索的深度限制\(dep\);dfs深度不能超过\(dep\),且要恰好遍历所有\(dep\)的状态;若在\(dep\)层没有找到答案,\(dep+1\todep\),重新DFS......
  • 第2关:16位先行进位加法器设计-实验指导
    第二关也通过啦!!任务描述        本关任务:16位先行进位加法器实验目的1、组间先行进位设计2、CLU和CLA级联应用实验原理         对于一个16位加法器,可以分成4组,每组用一个4位先行进位加法器CLA实现。下图是一个由4个4位先行进位加法器CLA与一个组间......
  • 「分数规划」学习笔记及做题记录
    「分数规划」学习笔记及做题记录做题时发现不会分数规划,赶紧来学一下。分数规划用于求解下面一类问题:有\(n\)个物品,第\(i\)个物品的价值为\(a_i\),费用为\(b_i\)。从中选择若干个物品,使得价值与费用的比值\(\dfrac{\suma}{\sumb}\)最大/最小。另一种更严谨的表示方......
  • 《代码大全》阅读笔记1(2024.10.4)
    第一章:引言软件构建的艺术:介绍了软件开发的复杂性,以及编写高质量代码的重要性。强调了良好的编码习惯不仅能提高代码的可读性和可维护性,也能降低后期的开发成本。第二章:软件构建的哲学质量的重要性:讨论了软件质量的定义,强调高质量软件不仅包括功能的正确性,还包括可维护性、......
  • 2024.10.5 笔记
    贪心的证明方法(5个):咕咕咕贪心、DP。贪心优化DP。有简单策略:贪心。无:DP。手玩样例。手玩。兜底。重复:copy。一行多个最小值。不管。得到答案后转成0/1。反悔贪心的一般策略:先把所有都选上,再反悔。IOI那道题和这道题。感觉反悔贪心常用堆。手写堆,支持插入、......
  • 红日靶机(三)笔记
    VulnStack-红日靶机三概述相交于前边两个靶场环境,靶场三的难度还是稍难一点,有很多兔子洞,这就考验我们对已有信息的取舍和试错,以及对渗透测试优先级的判断。涉及到对数据库操作的试错,对joomla框架cve的快速学习,php中用到disabled_function的bypass,对linux内核提权的取舍......
  • 数据容器之集合(笔记)
    集合的特点不支持重复元素(去重)而且顺序不能保证(乱序,无下标索引)允许被修改小总结列表[]元祖()字符串""集合{}语法#语法{"sasa","kaka","papa","enen"}#字面量set_1={"sasa","kaka","papa","enen"}#用......
  • 【刷题笔记】2024.10.4 test
    2024.10.4test虹色的北斗七星思路题目要求\[maxn-minn-len\]的最大值,其中\(maxn\)为区间的最大值,\(minn\)为区间的最小值,\(len\)为区间的长度注意性质,最优的状态一定是区间的左右端点为最大值和最小值时。因为,如果区间左右端点不为最大值或最小值,那么区间长度就可以继续......