“成成,在一个古老城市的废墟中,一群考古学家发现了一个神秘的函数”,系统声音出现在杨成的脑海中。
“他们试着给这个函数传进去一些参数,得到了意想不到的结果”。
“哦?”,杨成一听顿时来了兴致。
“说来听听”。
他话音刚落,眼前便出现了一幅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%的玩家,请您再接再厉!”