XTU 1215 A+B V

题目描述

小明很喜欢做a+b,他但经常忘记进位,所以他算88+12=90,而不是100。 现在你给了小明一些a+b的算式,请问他算出来会是什么?

输入

第一行是一个整数K,表示样例的个数。 每个样例占一行,为两个整数a,b,0≤a,b≤1e9。

输出

每行输出一个样例的结果,不要输出前导0。

代码如下:

#include<stdio.h>
#include<string.h>
int main() {
	int k;
	scanf_s("%d", &k);
	while(k--)
	{
		char a[11], b[11];
		int c[11];
		memset(a, '0', sizeof(a));
		memset(b, '0', sizeof(b));
		memset(c, 0, sizeof(c));
		scanf_s("%s", a,sizeof(a));
		scanf_s("%s", b, sizeof(b));
		int len1 = strlen(a);
		int len2 = strlen(b);
		int max, i, k = 0, m, j;
		if (len1 >= len2)max = len1;
		else max = len2;
		if (len1 < len2) {
			m = len2 - len1;
			for(j=0;j<m;j++){
				for (i = len1 + j; i > 0; i--)a[i] = a[i - 1];
				a[0] = '0';
			}
		}
		else if(len1 > len2) {
			m = len1 - len2;
			for(j=0;j<m;j++) {
				for (i = len2 + j; i > 0; i--)b[i] = b[i - 1];
				b[0] = '0';
			}
		}
		for (i = 0; i < max; i++) {
			c[i] = (a[i]-'0'+b[i]-'0') % 10;
		}
		i = 0;
		while (c[i] == 0)i++;
		for (i; i < max; i++) {
			printf("%d", c[i]);
			k = 1;
		}
		if (k == 0)printf("0");
		printf("\n");
	}
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值