hdu3787 A+B (字符串的处理)

A+B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3629    Accepted Submission(s): 2069


Problem Description
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
 

Input
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
 

Output
请计算A+B的结果,并以正常形式输出,每组数据占一行。
 

Sample Input
   
   
   
   
-234,567,890 123,456,789 1,234 2,345,678
 

Sample Output
   
   
   
   
-111111101 2346912
 

Source
浙大计算机研究生复试上机考试-2010年
 


很水的a+b,做做水题找自信

代码:

#include <stdio.h>
#include <string.h>
int main()
{
	int len1,len2;
	long long  sum1,sum2;
	char str1[20],str2[20];
	while(scanf("%s %s",str1,str2)!=EOF)
	{
		len1=strlen(str1);
		len2=strlen(str2);
		if(str1[0]=='-')
		{
			sum1=0;
			for(int i=1;i<len1;i++)
			{
				if(str1[i]!=',')
				sum1=sum1*10+str1[i]-'0';
			}
			sum1=-sum1;
		}
		else
		{
			sum1=0;
			for(int i=0;i<len1;i++)
			{
				if(str1[i]!=',')
				sum1=sum1*10+str1[i]-'0';
			}
		}
		if(str2[0]=='-')
		{
			sum2=0;
			for(int i=1;i<len2;i++)
			{
				if(str2[i]!=',')
				sum2=sum2*10+str2[i]-'0';
			}
			sum2=-sum2;
		}
		else
		{
			sum2=0;
			for(int i=0;i<len2;i++)
			{
				if(str2[i]!=',')
				sum2=sum2*10+str2[i]-'0';
			}
		}
		printf("%lld\n",sum1+sum2);
		memset(str1,0,sizeof(str1));
		memset(str2,0,sizeof(str2));
	}
	return 0;
}


你可能感兴趣的:(HDU,3787,hdu3787)