摘要: 题意明确,让计算出起始有m个金片的汉诺塔金片全部移动到另外一个针上时需要移动的最少步数是多少?(由于结果太大,现在只要求算出结果的十进制位最后六位)解题思路:大家都很熟悉汉诺塔求移动次数公式为f(n+1)=f(n)*2+1; 由于0<m<1000000000,按要求,只需要输出结果的十进制最后六位,即f(n+1)=(f(n)*2+1)%1000000(注意是1后面是6个0,刚开始我就弄错了)。由于m 取值范围太大,如果按公式计算一定会超时。经过测试多组数据发现,当m>100005时,有如下规律:f(123456)=f(23456); f(123456789)=f(234567 阅读全文
posted @ 2011-08-29 21:37 笑巧 阅读(303) 评论(0) 推荐(2) 编辑