大整数加法(C++)

题目:实现两个较大整数相加

主要回顾一下大整数相加的思路和方法

大整数相加主要有三个步骤:

一、用字符串输入两个较大整数(因为是较大整数,所以用字符串而不用数组,这样更好储存)

二、将存入的数字逆转并存入两个新的数组crr,drr中(逆转是为了防止加法运算时两个数位数不齐,以简化运算)

三、将逆转后的两个数组一一相加并存入sum中,并实现 进位问题 

四、倒序输出sum得到结果

具体实现代码如下:

//大整数加法
#include<iostream>
#include<string>
#include<string.h>//用字符串函数不要忘了头文件
using namespace std;
int main() {

    string arr;//在定义变量的同时要初始化
	string brr;//字符串的定义不是char 而是string 而且没有[]不需要初始化
	
	int crr[200] = { 0 };
	int drr[200] = { 0 };
	int i;
	cin >> arr;
	cin >> brr;
	int n1 = arr.size();
	int n2 = brr.size();                  //一
	for (i = 0; i < n1;i++) {
		crr[i] = arr[n1 - 1 - i] - '0';
	}
	for (i = 0; i < n2; i++) {
		drr[i] = brr[n2 - 1 - i] - '0';//注意字符串与数组之间的转换
	}                                     //二
	int sum [1000] = { 0 };
	int t;
	if (n1 > n2) {
		t = n1;
	}else {
		t = n2;
	}
	for (i = 0; i < t; i++) {
		if (sum[i]+crr[i] + drr[i] <= 9) {
			sum[i] =sum[i] +crr[i] + drr[i];
		}
		else {
			sum[i] = (sum[i]+crr[i] + drr[i])%10;
			sum[i + 1] += 1;
		}
	}                                    //三
	for (i = 0; i < t; i++) {
		cout << sum[t - 1 - i] ;        //四
	}
	return 0; 
}

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值