• 字母数字推理题


            还有一科没考,这时仍然不务正业没在复习,看起面试题来了。

            刚刚看了Google的变态面试题,其中有一道是这样的:

                    等式:donald+gerald=robert

                    已知d=5,每个数字对应一个唯一的字母,求字母与数字之间的对应关系。

     

            貌似有点困难,不过头绪还是有的,所以我开始动手求解了,步骤如下:

     

             donald
            +gerald
            =robert

            [1]d=5
            [2]由式子个位得出t(或者1t)=2
    *d

            [3]这里因为d=5所以显然t=0向十位进1
            [4]继续看式子的十位,可得出r=2
    *l+1(也可能是1r=2*l+1)

            [5]所以r是奇数
            [6]由式子的十万位可看出d+g<10(如果万位计算向十万位产生进位的话就是d+g<9)
            [7]那么d=5的话就有g<5(同上,有可能是g<4)且r>5
            [8]由[7]可知r可能为7 9
            [9]很特殊的万位,o+e=o,e不可能为0,所以e=9,说明千位有进位,且万位计算后向十万位进1,同时因为[8]得出r=7,因为[4]得出l可能是3或8
            [10]这时o几乎不可能估算出来,但是鉴于正好有10种字母,所以求完后最后剩下的就是o
            [11]综合[6]、[7]、[9]终于知道了d+g<9 g<4 5+g+1=r,再参照[9]得出g=1
            [12]看式子的百位得知e=2
    *a,那么a=4.5,这是错误的,所以真相只有一个,那便是十位向百位进位了,由此可知a=4,而且回顾[9]可知l=8

            [13]由于[9]中说千位有进位,所以看千位可知n+r=1b,即是n+7=1b,并且很显然n>3
            [14]此时场上还有3个未解的字母n b o,对应三个数字2 3 6,根据[13]可知n=6,那么b=3,o=2

     

            d=5 t=0 e=9 r=7 g=1 a=4 l=8 n=6 b=3 o=2

            本文章系受著作权法保护,未经著作人同意,不得盗用;使用或引用本文章内容请注明作者名、原地址:书中叶http://www.cnblogs.com/libook

  • 相关阅读:
    java-实现两种排序方法
    暑假,一遍一遍敲代码吧!
    java学习-如何定义一个函数及其简单练习
    关于函数重载的理解
    java学习中关于函数的练习
    在校大三学生,真心想学好计算机。可是,,,,没有目标,。。。。。。
    伪分布式网络爬虫框架的设计与自定义实现(一)
    网站架构成长路程之 箴言
    使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目
    使用visualStudio2017创建一个简单的控制台程序
  • 原文地址:https://www.cnblogs.com/libook/p/3187536.html
Copyright © 2020-2023  润新知