Description
Sometimes Ziwen need to operate even larger numbers. A limit of 1000 digits is so small… You have to find the sum of two numbers with maximal size of 1 000 000 digits.
Input
The first line contains a single integer N that is the length of the given integers(1 ≤ N ≤ 1 000 000). It is followed by these integers written in columns. That is, the next N lines contain two digits each, divided by a space. Each of the two given integers is not less than 0, and the length of their sum does not exceed N. The integers may contain leading zeroes.
Output
Output exactly N digits in a single line representing the sum of these two integers.
Sample Input
4
0 4
4 2
6 8
3 7
Sample Output
4750
代码
#include<iostream>
using namespace std;
main()
{
int n;
while(scanf("%d",&n)!=EOF){
int a[n][2];
for(int i=0;i<n;i++){
scanf("%d%d",&a[i][0],&a[i][1]);
}
int c[n+1];
for(int i=0;i<n+1;i++){
c[i]=0;
}
static int k=0;
for(int i=n-1;i>=0;i--){
c[i+1]=(a[i][0]+a[i][1]+k)%10;
k=(a[i][0]+a[i][1]+k)/10;
}
if(c[0]!=0) printf("%d",c[0]);
for(int i=1;i<n+1;i++){
printf("%d",c[i]);
}
}
}
算法还是较简单的,不过在开始测试,发现输出的总是00000X,后面才发现少了using namespace std; 但程序可以运行,不过无法的出正确的结果,原因待究。