加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数相加

发布时间:2020-12-14 01:58:07 所属栏目:大数据 来源:网络整理
导读:大数相加问题是一个很常见的问题,就是用数组来模拟,不过我以前都是翻转过来模拟加法,不过发现了一个更快的算法,根本不用翻转,直接模拟,以前没怎么在意大数相加的时间问题,不过现在应该在意了,每道题都应该想一想是否还可以更快。代码很好理解,就不

大数相加问题是一个很常见的问题,就是用数组来模拟,不过我以前都是翻转过来模拟加法,不过发现了一个更快的算法,根本不用翻转,直接模拟,以前没怎么在意大数相加的时间问题,不过现在应该在意了,每道题都应该想一想是否还可以更快。代码很好理解,就不解释了。

代码:

<span style="font-family:Courier New;font-size:18px;">#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char a[1005];
	char b[1005];
	char c[1005];
	while(cin >> a)
	{
		cin >> b;
		int lena = strlen(a)-1;
		int lenb = strlen(b)-1;
		int i,temp;
		for(i=0,temp = 0; lena >= 0 || lenb >= 0; i++,lena--,lenb--)
		{
			if(lena >= 0 && lenb >= 0)
				c[i] = a[lena] + b[lenb] - '0' + temp;
			else if(lena >= 0 && lenb < 0)
				c[i] = a[lena] + temp;
			else
				c[i] = b[lenb] + temp;
			temp = 0;
			if(c[i] > '9')
			{
				c[i] = c[i] - 10;
				temp = 1;
			}
		}
		if(temp == 1)
			cout << '1';
		while(i--)
		{
			cout << c[i];
		}
		cout << endl;
	}
	return 0;
} </span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读