1. 程式人生 > >【c++大數加法】A+B陣列實現

【c++大數加法】A+B陣列實現

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;

char ac[10005];
char bc[10005];
int arr[10005];
int brr[10005];
int crr[10005];
int main(){
	scanf("%s",ac);
	scanf("%s",bc);
	memset(arr,0,sizeof(arr));
	memset(brr,0,sizeof(brr));
	memset(crr,0,sizeof(crr));
	int lena=strlen(ac);
	int lenb=strlen(bc);
	int y=0;
	for(int i=lena-1;i>=0;i--){
		arr[y++]=ac[i]-'0';
	}
	y=0;
	for(int i=lenb-1;i>=0;i--){
		brr[y++]=bc[i]-'0';
	}
	//
//	for(int i=0;i<lena;i++){
//		cout<<arr[i];
//	}
//	cout<<endl;
//	for(int i=0;i<lenb;i++){
//		cout<<brr[i];
//	}
//	cout<<endl;
	
	int maxv=max(lena,lenb);
	int t=0;
	for(int i=0;i<maxv+1;i++){
		crr[i]=arr[i]+brr[i]+t;
		if(crr[i]>=10){
			t=crr[i]/10;
			crr[i]=crr[i]%10;
		}else{
			t=0;
		}
	}
	if(crr[maxv]!=0)
		cout<<crr[maxv];
	for(int i=maxv-1;i>=0;i--){
		cout<<crr[i];
	}
	cout<<endl;
	return 0;
}