UESTC 1012-Ladygod【没有负数】

Ladygod

Edit

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

SubmitStatus

10

Input

第一行读入一个整数 T(1≤T≤100000) T(1≤T≤100000) 表示数据组数

接下来有T T行

每行含两个数A,B A,B (不超过4 4位的非0 0整数)

Output

对于每个数据输出一个数字,表示可能的答案的最大长度

Sample input and output

Sample InputSample Output
2
78 87
1 1
3 
2

Hint

Source

Luk 

 

 

解题思路:

真的没负数。

 

 

#include<stdio.h>
#include<string.h>
#include<string>
#include<algorithm>
using namespace std;
char num1[10],num2[10];
int num11,num22;
int ans[50];
int maxx(char *n1,char *n2)
{
	int i,j;
	int ans=-1;
	for(i=0;i<4;i++)
	{
		ans=(n1[i]-'0'>ans)?n1[i]-'0':ans;
	}
	for(i=0;i<4;i++)
	{
		ans=(n2[i]-'0'>ans)?n2[i]-'0':ans;
	}
	return ans;
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		memset(ans,0,sizeof(ans));
		memset(num1,'0',sizeof(num1));
		memset(num2,'0',sizeof(num2));
		scanf("%d%d",&num11,&num22);
		int i,j;
		for(i=3;num11>0||num22>0;i--)
		{
			num1[i]=num11%10+'0',num11/=10;
			num2[i]=num22%10+'0',num22/=10;
		}
		int jj;
		jj=maxx(num1,num2)+1;
	//	printf("%d\n",jj);
		int wc=0;
		int uu=0;
		for(i=3;i>=0;i--)
		{
			if(num1[i]-'0'+num2[i]-'0'+ans[uu]>=jj)
			{
				ans[uu]=(num1[i]-'0'+num2[i]-'0'+ans[uu])%jj;
				ans[uu+1]++;
			}
			else
			{
				ans[uu]=num1[i]-'0'+num2[i]-'0'+ans[uu];
			}
			uu++;
		}
		for(int x=4;x>=0;x--)
		{
			if(ans[x]!=0)
			{
				wc=x;
				break;
			}
		}
		printf("%d\n",wc+1);
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值