UVA 10106 (暑假-高精度-A - Product)

#include <stdio.h>
#include <string.h>
const int Max = 1000;

int main() {
	char str_1[Max], str_2[Max];
	memset(str_1, 0, 1000);
	memset(str_2, 0, 1000);

	
	while (gets(str_1)) {
		gets(str_2);
		int count = 0;
		int	s[2*Max] = {0};
		int arr_1[Max] = {0}, arr_2[Max] = {0};
										//输入数据
		int len_1 = strlen(str_1);
		int len_2 = strlen(str_2);
		for (int i = 0; i < len_1; i++)
			arr_1[i] = str_1[len_1 - i - 1] - '0';
		for (int j = 0; j < len_2; j++)
			arr_2[j] = str_2[len_2 - j - 1] - '0'; 

		int i, j;
		for (i = 0; i < Max; i++)    //计算
			for (j = 0; j < Max; j++) {
				s[i+j]	= s[i+j] + arr_1[i] * arr_2[j];
				if (s[i+j] >= 10) {
					s[i+j+1] += s[i+j] / 10;
					s[i+j] = s[i+j] % 10; 
				}	
			}

											//输出数据
		if (str_1[0] == '0' && len_1 == 1 || str_2[0] == '0' && len_2 == 1)
			printf("%d", s[i]);
		else {
			for (i = 2 * Max - 1; i >= 0 ; i--)
				if (s[i] != 0)
					break;
			for (; i >= 0; i--)
				printf("%d", s[i]);
		}

	memset(str_1, 0, 1000);
	memset(str_2, 0, 1000);
	printf("\n");
	}
	return 0;
}

/*		for (i = 0; i < 2*Max; i++)
			s_1[i] = s[Max*2-i-1], printf("%d", s[i]);
		printf("\n");
		for (i = 0; i < 2*Max; i++)
			printf("%d",s_1[i] );
		printf("\n");
*/
		/*
		for (i = 0; i< 2*Max; i++)
			if (s_1[i] != 0)
				break;

		for (; i < 2*Max; i++)
			printf("%d",s_1[i] );
		printf("\n");
		*/

			
/*			if (count) 
				printf("%d", s[i]);
			else if (!count && s[i] == 0)
				count = true;
*/

											//检查输入的数据是否正确保存	
/*
		for (int i = 0; i < len_1; i++)
			printf("%d", arr_1[i]);
		printf("\n");
		for (int j = 0; j < len_2; j++)
			printf("%d", arr_2[j]);
		printf("\n");
		puts(str_2);
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰阔落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值