第四章第二节通关秘籍:解锁新境界攻略解析

3 0

上回提到的异或门将在下文频繁使用,尤其是那个功能强大的取余函数。虽然不用它也能说明问题,但会显得繁琐复杂。为便于阐述、减轻阅读负担,接下来的内容将直接引用该函数,不再另寻他法,以求简洁明了,提升表达效率。

第四章第二节通关秘籍:解锁新境界攻略解析

分两步进行

(1)取个位

两个取余结果异或,一步完成。

取十位数字,采用第一种方法。

三个个位数相加最大不超过两位数,因此百位无需考虑,直接忽略即可,解题只需关注十位及以下部分。

当三个数中至少有两个是1时,可进入十位。若三个数全为1,同样满足条件。但题目仅涉及三个数,不存在第四个数的情况。

先别管那么多,直接判断下面两个数是否都能进位,若都是1,就立即结束,执行一次与操作即可。

当两个输入中至少有一个为1时,输出可进入1状态。具体包括:两数均为1,或其中一个为1且上方数为1。可通过先对下方两数进行异或运算,再与上方数值进行与运算实现。

能进1的情况有三种,其中三个数都为1的情形可归入(2-1)中,无需单独考虑。也可一并分析,只需在下方添加两个and,再连接一个and即可。

将上述三种情况通过或运算连接,综合处理后即可得到十位数的结果。

这样解决了,还有哪里不清楚吗?

还有个

十位取数法二

如图