【c语言】关于进制转换的面试题

一、30!转换成三进制有几个0

我们先从简单十进制说起例如:

十进制30!中有几个0;

5和一个偶数得一个零

10得一个零

15和一个偶数相乘得一个零

20得一个零

25=5*5与两个偶数相乘得到两个零

30得到一个零

所以十进制30!中共有7个零;总结上例,十进制中相乘结果为10时,则会得到一个零;

同样在三进制也是一样的,相乘结果为3时会得到一个零,即:

30!转换成三进制会有几个0;

3     一个

6=2*3    一个

9=3*3    两个

12=3*4   一个

15=3*5   一个

18=3*3*2  两个

21=3*7  一个

24=3*8   一个

27= 3*3*3  三个

30=3*10   一个

所以30!转换成三进制总共会有14个零;

二、567*456=150216在n进制下成立,问n为多少

去两个数字的各位相乘,在十进制的情况下,7*6=42,

根据我们知道的进制之间的转换是除进制数得余数,也就是说42除进制数n最后的余数为6,

则进制数n是介于6与36(42-6)之间36的因子,所以:

n可能为:9,12,18,36

(5n^2+6n^1+7n^0)*(4n^2+5n^1+6n^0)=20n^4+49n^3+88n^2+71n^1+42

1n^5+5n^4+2n^2+1n^1+6n^0

两式相等20n^4+49n^3+88n^2+71n^1+42=1n^5+5n^4+2n^2+1n^1+6n^0

将n可能的值代进去,使等式成立

最终计算得出n为18

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值