c++高精加法

本文介绍如何使用C++模拟竖式计算实现高精度加法。通过将输入的字符串转换为整型数组,逐位相加并处理进位,最终得到加法结果。在处理过程中,特别注意了答案可能多一位的情况,并在输出时去除多余的0。
摘要由CSDN通过智能技术生成

总体思路:模拟竖式计算

首先,我们无法确定输入数字的大小,因此,我们使用string

    string a,b;
	cin>>a;cin>>b;

这不是废话吗

接着再定义两个整型变量用于计算输入数字的长度,之后再定义两个数组用于表示加数。

const int n=a.length(),m=b.length();//注意这里不能用sizeof()

为了防止加数数组中出现杂值,需要在main外进行初始化

int i[500];int j[500];//加数 

以及答案

int ans[501];

同样的,也要初始化,注意这里要多一位,因为答案可能会多一位。

废话终于讲完了

接下来,我们要将输入的两个字符行变量转化成整型变量,存储在加数数组中。

	for(int s=0,l=n-1;s<n&&l>=0;s++,l--)
	{
		i[l]=a[s]-48;
	} 
	for(int s=0,k=m-1;s<m&&k>=0;s++,k--)
	{
		j[k]=b[s]-48;	
	}//字符转数字

为了防止出现错误,在调试时我们可以增添一段调试代码:


                
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值