大数相加
发布时间: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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |