微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HDOJ1002大数加法

#include <stdio.h>
#include <string.h>
int main () {

	int n;
	char str1[1010],str2[1010];
	int dst[1010];
	int i,j;

	while(scanf("%d",&n) != EOF && n) {

		for(i = 1; i <= n; i ++) {
		
			memset(str1,sizeof(str1));
			memset(str2,sizeof(str2));
			memset(dst,sizeof(dst));

			scanf("%s %s",str1,str2);
			
			int len1 = strlen(str1);
			int len2 = strlen(str2);

			printf("Case %d:\n",i);
			printf("%s + %s = ",str2);

			int k;

			if(len1 > len2) {
			
				while(len1 - len2 > 0)
				{
					for(j = len2 - 1; j >= 0; j --) {
						
						str2[j + 1] = str2[j];
					}
						str2[0] = '0';
						len2 ++;

				}
			}

			else if(len2 > len1) {
			
				while(len2 - len1 > 0)
				{
					for(j = len1 - 1; j >= 0; j --) {
						
						str1[j + 1] = str1[j];
					}
						str1[0] = '0';
						len1 ++;			

				}
			}

			int count = 0;

			for(j = len1 - 1,k = 0; j >= 0; j --) {
		
				dst[k] = str1[j] - '0' + str2[j] - '0' + count;

				if(dst[k] >= 10) {
					dst[k ++] -= 10;
					count = 1;
				}

				else 
				{
					k ++;
					count = 0;
				}
			}

			if(count == 1) dst[k ++] = 1;

		for(j = k - 1; j >= 0; j --)
			printf("%d",dst[j]);

		printf("\n");

		if(i != n)
			printf("\n");
		}

		break;
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐