码迷,mamicode.com
首页 > 其他好文 > 详细

1198 a+b

时间:2015-03-07 21:24:01      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:c语言   strlen   

/*
1.先将每个字符数字,转换为数字再计算。
2.考虑进位
3.计算单个字符串数字时不要忘了考虑进位
4.最后两个字符串数字都计算完了之后,可能有进位,此时不要忘了加上进位。
*/
# include <stdio.h>
# include <string.h>

int main(void)
{
	char str[1000],str2[1000];
	int i;
	for(i = 0; i < 1000; i++)
	{
		str[i] = 0;
		str2[i] = 0;
	}
	while(scanf("%s %s", str, str2) != EOF)
	{ 
		getchar();    //吸收回车符。
		//printf("%s\n", str2);
		int i,j,len1,len2,k = 0,ex = 0;
		len1 = strlen(str);
		len2 = strlen(str2);
		int result[1010];
		for(i = len1-1, j = len2-1; i >= 0 && j >= 0; i-- ,j--)
		{  
            int x = str[i] - '0';  
            int y = str2[j] - '0';  
            result[k++] = (x+y+ex)%10;  
            ex = (x+y+ex) / 10;  
        }
		if(i < 0 && j >= 0)
		{
			while(j >= 0)
			{
				int temp1 = str2[j] - '0';
				result[k++] = (temp1 + ex) % 10;
				ex = (temp1 + ex) / 10;
				j--;
			}
		}
		if(i >= 0 && j < 0)
		{
			while(i >= 0)
			{
				int temp2 = str[i] - '0';
				result[k++] = (temp2 + ex) % 10;
				ex = (temp2 + ex) / 10;		
				i--;
			}
		}
		if(ex == 1)
		{
			result[k++] = 1;
		}
		for(i = k-1; i >= 0; i--)  
            printf("%d", result[i]);  
        printf("\n");  
	}
	return 0;
}

1198 a+b

标签:c语言   strlen   

原文地址:http://blog.csdn.net/xu758142858/article/details/44119631

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!