UESTC 1012:Ladygod【模拟】

Ladygod

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

有一天人诹Lee在随手帮女神做题,突然女神发现了自己演算纸上的一个式子,但是式子只有两个加数却没有结果,最近在学不同进制加减法的女神忘了这个两个数字是多少进制了(只记得是小于等于 10 10),但是她很好奇在可能的多少进制下这个式子得到的答案长度最长,为了从人赢Lee手中抢走女神,你需要快速计算出这个答案,例如 78+87= 78+87=? 在 10 10进制下是 165 165,在 9 9进制下是 176 176,而小于等于 8 8的进制显然是不合法的,所以这个式子答案可能的最长长度就是 3 3.

Input

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

接下来有 T T

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

Output

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

Sample input and output

Sample Input Sample Output
2
78 87
1 1
3 
2
AC-code:
#include<cstdio>
int main()
{
	int T,a,b,i,k1,k2,a1,a2,flag,k,num,ans,t,max;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&a,&b);
		max=0;
		for(i=2;i<=10;)
		{
			flag=0;
			k1=a,k2=b;
			a1=a2=0;
			t=1;
			while(k1)
			{
				k=k1%10;
				if(k>=i)
				{
					i=k+1;
					flag=1;
					break;
				}
				k1/=10;
				a1+=k*t;
				t*=i;
			}
			if(flag)
				continue;
			t=1;
			while(k2)
			{
				k=k2%10;
				if(k>=i)
				{
					i=k+1;
					flag=1;
					break;
				}
				k2/=10;
				a2+=k*t;
				t*=i;
			}
			if(flag)
				continue;
			ans=a1+a2;
			num=0;
			while(ans)
			{
				ans=ans/i;
				num++;
			}
			if(num>max)
				max=num;
			i++;
		}
		printf("%d\n",max);
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值