quill 2008-2-20 21:33
请帮忙分析分析
请帮忙分析分析
请将电话号码的【前】4位数字输入计算器 (若你家电话号码不足8位时,就输入【前】3位)
2. 将它乘以 80
3. + 1
4.乘以 250
5. + 电话号码的【后】4位数字
6. 再加一次电话号码【后】4位
7. 将总数 - 250
8. 最后将屏幕上的数字【÷】2 看看是不是你的电话
貌似这个算法很正确,什么原理呢??
godmmx 2008-2-20 22:18
这么简单:
首先将你的电话号码看成由两部分组成,分别设为X和Y,那么你的电话就成了XY,其中X为前3位数,Y为后4位数,根据题名意思可以知道算法为
(((X*80+1)*250+Y*2)-250)/2
化简上面的式子得:
((20000X+250+2Y-250)/2
继续化简得:
10000X+Y
意思就是把X提前4位数后和Y组合,这样出来的当然就是XY咯
山巅一寺一壶酒 2008-2-21 00:24
你把这个理解为前3(4)位乘上2*5*10*100之后再加上后4位,结果肯定是你的电话号码,比方说你的电话是1685321!前3位168*2*5*10*100=1680000,再加上5321就是"1685321"了,不就是你的电话吗?其实LZ的算法就是把2*5*10*100说得复杂一点而已