poj 2562 Primary Arithmetic

简介:

这道题太阴险了。。居然还有单复数。。。

1的时候和多个的时候不一样。。。。。。。


题意:给你两个数,问如果有两个数用笔算相加,有多少次进位。

 

思路:简单模拟。但情况要考虑全,而且注意单复数的输出形式不同。可能WA的数据有:

      0 5

      999999 8

      901 99


#include <stdio.h>
#include <string.h>

char a[15],b[15];
int aInt[15],bInt[15];

void inverse()
{
	int i;
	//转a
	for(i=0;i<strlen(a);i++)
		aInt[strlen(a)-1-i]=a[i]-48;

	//转b
	for(i=0;i<strlen(b);i++)
		bInt[strlen(b)-1-i]=b[i]-48;

	//test
	/*for(i=0;i<strlen(a);i++)
		printf("%d ",aInt[i]);
	printf("\n");

	for(i=0;i<strlen(b);i++)
		printf("%d ",bInt[i]);
	printf("\n");*/
}

int main()
{
	int i;
	int count;
	while(scanf("%s%s",&a,&b))
	{
		if(strcmp(a,"0")==0 && strcmp(b,"0")==0)
			break;

		//init
		count=0;
		memset(aInt,0,sizeof(aInt));
		memset(bInt,0,sizeof(bInt));

		//将a[],b[]中的数转为int型,且低位在1位
		inverse();

		for(i=0;i<=strlen(a) || i<=strlen(b);i++)
			if(aInt[i]+bInt[i]>=10)
			{
				count++;
				aInt[i+1]++;
			}

		if(count==0)
			printf("No carry operation.\n");
		else if(count==1)
			printf("1 carry operation.\n");
		else
			printf("%d carry operations.\n",count);
	}

	return 0;
}




相关文章
uva10035 Primary Arithmetic
uva10035 Primary Arithmetic
27 0
LeetCode 377. Combination Sum IV
给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。
86 0
LeetCode 377. Combination Sum IV
|
机器学习/深度学习
POJ 1423 Big Number
POJ 1423 Big Number
93 0
|
Go
HDOJ(HDU) 1977 Consecutive sum II(推导、、)
HDOJ(HDU) 1977 Consecutive sum II(推导、、)
102 0
|
机器学习/深度学习 存储 人工智能
|
机器学习/深度学习 人工智能
POJ 1423 Big Number
Description In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc.
764 0
|
人工智能 移动开发 vr&ar