编程之战 第五十四章 谜之函数
作者:程序小猿的小说      更新:2019-05-23

  “成成,在一个远古城市的废墟中,一群考古学家发现了一个神秘的函数”。

  系统声音出现在杨成的脑海中。

  “他们试着给这个函数传进去一些参数,得到了意想不到的结果”。

  “哦?”,杨成一听顿时来了兴致。

  “快说来听听”。

  他话音刚落,眼前便出现了一幅3D的全息投影面板。

  面板上是一张历史气息浓厚的羊皮卷,上面刻画着一些古老而玄奥的符号,字母和阿拉伯数字:

  #返回2

  getNum(300)

  #返回4

  getNum(90783)

  #返回0

  getNum(123321)

  #返回8

  getNum(89282350306)

  #返回5

  getNum(3479283469)

  “考古学家们都被卡在了这个问题上面,他们废寝忘食却无计可施...”

  系统的声音里充满了惋惜。

  “现在只能求助于你——聪明的程序员。”

  “快理解这个函数中蕴含的秘密,并且将它还原出来吧!”

  系统鼓舞杨成。

  “Okay”。

  杨成打了个响指,自信满满地接下了这个任务。

  然后,他开始了对这个函数结果的观察。

  这个函数乍看之下并没有什么特别之处。

  接收一个数字作为参数,返回一个数字作为结果。

  如果说有值得注意的地方,那就是函数名是叫getNum。

  从这个名称来看,估计功能是获取某个东西的数量。

  而函数结果也验证了这种猜测,都是些个位数。

  但是光凭这些信息是无法推测出函数内容的...

  杨成想了一会儿,感觉有些头疼,他轻轻地捶了捶头,没有半点思路。

  “系统妹子,有提示吗?”

  他只能选择求助。

  “给你一点提示吧”。

  系统声音刚落,羊皮卷上就浮现出一行黑色的字迹。

  杨成凑过去,定睛一看:

  Hint:holes

  他念出了这段英文。

  Hint是提示或线索的意思,holes是小孔或洞的意思,而且是复数形式。

  这是什么鬼?

  莫非传进去的参数和返回结果与holes有关联?

  程序员的直觉让他先想到了这一步,他再返回去看羊皮卷正文。

  第一个例子,300为参数为什么会返回2?

  一种通俗的想法是:300有2个0。

  慢着!

  0的写法像什么?

  洞或小孔!

  一丝闪光出现在杨成的脑海,他顿时脑洞大开。

  既然0有1个洞,那么8有几个洞?

  2个!

  6和9有几个洞?

  各有一个洞!

  这就不难理解,为何90783会返回4。

  1+1+2=4

  很简单的加法!

  杨成感觉茅塞顿开,一种舒畅的感觉席卷了他全身。

  “系统妹子”。

  他喜滋滋地呼唤道。

  “我想我已经知晓其中的奥秘了”。

  “成成真不错!”

  “叮!恭喜您完成了谜之函数的相关任务!”

  “当前积分124分,击败了全球40%的玩家,请您再接再厉!”