我的想法有点笨,不过也说说,大家集思广益嘛
最初的序列为:1,2, 3, 4, ..., 1999, 2000(总数为偶数)
第一次取掉所有奇数,即剩下(2, 4, 6, ..., 1998, 2000) = 2 * ( 1, 2, 3, ..., 999, 1000)(仍为偶数)
第二次取掉剩下数中所有奇数,即剩下2 * (2, 4, 6, ..., 998, 1000) = 2^2 *(1, 2, 3, ..., 499, 500)(偶数)
第三次取掉剩下数中所有奇数,即剩下2^2 * (2, 4, 6, ..., 498, 500) = 2^3 * (1, 2, 3, ..., 249, 250)(偶数)
第四次取掉剩下数中所有奇数,即剩下2^3 * (2, 4, 6, ..., 248, 250) = 2^4 * (1, 2, 3, ..., 124, 125)(注意!为奇数了)
此时再取时,最后一个数2^4 * 125将被取掉,所以将第一个2放到最后,得:
第五次的结果:2^4 * (4, 6, 8, ..., 124, 2) = 2^5 * (2, 3, 4, ... , 62, 1)
为了简单,我们现在只对(2, 3, 4, ...., 62, 1) 取数,最后结果乘2^5即可。
先将(2, 3, 4, ..., 62, 1)序列映射为(1, 2, 3, ...., 61, 0)即原序列每个数减一,对新序列(1, 2, 3, ...., 61, 0)取数得:
第六次取数,得(2, 4, 6, ...., 60, 0) = 2 * (1, 2, 3, ..., 30, 0)(又是奇数了!)
(后面处理方法同上)
第七次取数,得 2 * (4, 6, 8, ..., 30, 2) = 2^2 * (2, 3, 4, ..., 15, 1)
再将(2, 3, 4, ..., 15, 1)映射为(1, 2, 3, ..., 14, 0)(原序列减一)
第八次取数,得 ( 4, 6, ..., 14, 2)……进行下去此序列得到最终值14
所以最终结果为 ((14+1)* 2^2+1)*2^5 = 1952
不知道算错没有,做得好麻烦啊
[ 本帖最后由 tyc611 于 2006-12-5 13:30 编辑 ] |