进制数

博客讨论了一位名叫小林的人对进制数的兴趣,特别是进制大于10的情况。他遇到一个问题,忘记了数字n和其在x进制、y进制下的表示,只知道n是一个3位数,并且x和y在10到15000之间。博客提供了一个解决方案,通过两个3位数字来找到对应的x和y,指出直接循环解法会导致时间超限,建议使用二分法进行进制转换和查找。
摘要由CSDN通过智能技术生成

题目描述

小林最近对于进制数非常感兴趣。

一个数被写成B进制,那么这个数从右到左每位表示1,B^1,B^2,B^3,……如此下去。如果数字1234被理解成十进制,那么它其实应该表示的是1(1000)+2(100)+3(10)+4(1)。如果相同的数字被理解成五进制,那么它意味着1(125)+2(25)+3(5)+4(1),转换成十进制是194。小林注意到如果进制增加,相同数字串表示的值也增大。比如,1234在七进制下的值要比在六进制下的值大。

当在B进制下写数字时,每位数字的范围都是0…B-1,就比如在十进制下每位数的范围时0…9,在五进制下是0…4。考虑进制数大于10是完全有可能的。计算机科学家们常常使用十六进制,A…F分别表示值10…15。例如,BEEF在十六进制下对应11(4096)+14(256)+14(16)+15,对应十进制下的48879。

小林被“进制数可以大于10”这个概念所深深地迷住。他拿过一个数字n并且在x进制和y进制两个进制下分别写出,x和y的范围是10…15000。有趣的是,在每种情况下,他拿到一个有3个数字的数字串,每位数字只有0…9。不幸的是,由于小林记性很差,他现在已经忘记了n、x和y。

给两个3位数字,请帮助他找出使用过的x和y。

输入

第1行为1个正整数k。以下k行,每行一个测试数据。

每个测试数据包含两个三位数字。第一个数字n被写成了x进制,第二个数被写成了y进制。n、x和y对于每个测试数据都有可能不同。

输出

对于每组测试数据,输出一行,表示对应的x和y,用一个空格隔开。对于每组测试数据࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值