1. 程式人生 > >演算法備戰之計蒜客A+B問題

演算法備戰之計蒜客A+B問題

#include<iostream>
#include<cstring>
using namespace std;
int max(int m,int n)
{
	int max=m;
	if(n>max)
	max=n;
	else
	max=m;
	return max;
}
int main()
{
	char x1[500]={'\0'};
	char x2[500]={'\0'};
	int i;
	int carry[501]={0};
	int result[501]={0};
	cin>>x1>>x2;
	int len1=strlen(x1);
	int len2=strlen(x2);
	strrev(x1);
	strrev(x2);
	int lenmax=max(len1,len2);
	int x11[500]={0};
	for(i=0;i<=len1-1;i++)
	{
		x11[i]=x1[i]-'0';
	}
	int x22[500]={0};
	for(i=0;i<=len2-1;i++)
	{
		x22[i]=x2[i]-'0';
	}
	for(i=0;i<=lenmax-1;i++)
	{
		result[i]=x11[i]+x22[i];
		result[i+1]=0;
	} 
	for(i=0;i<=lenmax+1;i++)
	{
		carry[i+1]=result[i]/10;
		result[i]=result[i]%10+carry[i];
	}
	if(result[lenmax]==0)
	i=lenmax-1;
	else
	i=lenmax;
	for(;i>=0;i--)
	{
		cout<<result[i];
	}
	cout<<endl;
	return 0;
}