大数运算——HDOJ 1002

HDOJ 1002 A+B

/*
HDOJ 1002
大数加法
*/

#include <iostream>
#include <string>
using namespace std;

int a[1001],b[1001],sum[1001];

int main()
{
	int nCase,i,j,cf,temp,
		length_a,length_b,length_sum;
	string temp_a,temp_b;
	
	cin>>nCase;
	for(i=0;i<nCase;i++)
	{
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		memset(sum,0,sizeof(sum));

		cin>>temp_a>>temp_b;
		
		length_a=temp_a.length();
		length_b=temp_b.length();
		
		for(j=0;j<length_a;j++)
			a[j]=temp_a[length_a-j-1]-'0';
		for(j=0;j<length_b;j++)
			b[j]=temp_b[length_b-j-1]-'0';
		
		length_sum=length_a>length_b?length_a:length_b;
		
		cf=0; //进位
		for(j=0;j<length_sum;j++)	
		{
			temp=a[j]+b[j]+cf;
			sum[j]=temp%10;
			cf=temp/10;
		}
		
		cout<<"Case "<<i+1<<":"<<endl;
		cout<<temp_a<<" + "<<temp_b<<" = ";
		for(j=length_sum-1;j>=0;j--)
			cout<<sum[j];
		cout<<endl;
		if(i != nCase-1)
			cout<<endl;
	}
	return 0;
}


你可能感兴趣的:(大数运算——HDOJ 1002)