版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://estyle.blogbus.com/logs/23306088.html
忘记是在什么地方看到的题目了,好像是CCTV的一档节目,当时算啊算啊算啊算……
清楚地记得,节目上说这是小学生做的题目,但是我却算了很久很久很久很久很久……
建议有兴趣的朋友都来挑战一下自己——如果有空的话:
原题,请猛点这里查看!
大意是,一个正整数,最后一位移动到第一位,新数是旧数的两倍,旧数是多少?
我的经历:
首先使用方程,列出等式,代入求解,不断尝试,数字越试越大,放弃——简称方法A。
然后使用程序,写代码,用最老土的算法,结果效率太低,算了很久不出结果,然后优化代码,更换算法,再优化代码,算出最小的答案,吓我一跳——简称方法B。
接着再手算一次,不再列方程,而是从低到高一位一位地推理,求出结果——简称方法C。
整个过程,耗费了我大概四个小时!其实,如果我肯在方法A的计算上多花十分钟,就能求出正解了,唉。方法B很脑残,而方法C估计是标准答案——至少对小学生来说应是如此。我用了小学生的方法,解出小学生的题,究竟该不该高兴?
感悟:人在探求答案的过程中,如果耗时太长,就容易自我怀疑,甚至自我否定,最后可能在离答案一步之遥的地方放弃。
最新消息:
@2008-06-21 00:03,我的朋友,小郑,20多分钟就搞定了,同方法A!突然想到:不抛弃,不放弃……
评论
19Y=(10^n-2)X
Y是整数,所以(10^n-2)X要能被19整除。
而19是素数,而X只能是1~9,所以10^n-2要能被19整除。
这个时候试n就比较容易了,n=17。
这样,代入X计算Y就比较容易了。
——也就是说,不用每个n都去挨个代入X,这样可以减少计算量。
可能从方法A还能想办法减少计算量,但是我实在不想去想了,谋杀脑细胞。
我觉着,方法C,才是王道!
设旧数的最后一位是X,旧数的其它位是Y(比如1234,X=4,Y=123)。
那么,旧数=10Y+X,新数=(10^n)X+Y,其中n是旧数的位数-1,或者说n是Y的位数。
那么,(10^n)X+Y=20Y+2X
19Y=(10^n-2)X
这个时候,开始尝试n,而X始终是1位数,带入1~9算。
n=1,19Y=8X,X是一位数,Y是一位数,不存在这样的数字。
....
n=8,19Y=99999998X,同样不存在。
....
n=17,19Y=99999999999999998X,这个时候可以好好算算,呵呵,如下X和Y可以使等式成立:
X=2
Y=10526315789473684
旧数是105263157894736842,这是满足条件的最小的正整数了。但是,个人认为,这个方法同样也是最笨的方法。
20+Y=(20*Y)*2 Y=16/39
30+Y=(30*Y)*2 Y=32/59
如果这样的话,只能在小于99的数里找,显然里面是没有的。用excel很快就能知道。我用设个为为a1,十位为a2,以此类推。
如果是3位数,则:98a1=10a2+199a3
如果是4位数,则:998a1=10a2+100a3+1999a4
如果是5位数,则:9998a1=10a2+100a3+1000a4+19999a5
我设a1 a2一直到an取值为0到9,并在excel中做一个矩阵,试图求出a1,可惜直到6位数,也没算出来。那个方程要怎么列?这我个方法可以算到100位数也不会有结果。
PS:其实最近已经收敛不少了……
比如,我在笔试中遇到这样一道看起来很简单的题,大概会把剩下的所有时间都花在上面……
口才不行...
这也说明,那些考上公务员的人,确实不仅仅是靠的“关系”,他们的实力也是不容忽视的。——至少,没有实力的,付出了很大的努力吧?总之,值得学习。
你想了一个小时了已经,呵呵,很给面子,很不错!
PS:人在探求答案的过程中,如果耗时太长,就容易自我怀疑,甚至自我否定,最后可能在离答案一步之遥的地方放弃。
不知道这Y是0.4吗??
里面有个规律··不知道我错了没有··
假设:
10+Y=(10*Y)*2 Y=8/19
20+Y=(20*Y)*2 Y=16/39
30+Y=(30*Y)*2 Y=32/59
…………
很显然,Y总是等于8的倍数*1*2*3*4*……除以19+20再+20再+20
我想当这个Y除出来不为小数的话,这个数字就出来了··所以按照上面的规律我拖了很多行····我估计这个 Y 应该是0.4~~~