汉诺塔(一)
来源:互联网 发布:画中画软件下载 编辑:程序博客网 时间:2024/04/30 12:52
汉诺塔(一)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。
现在请你计算出起始有m个金片的汉诺塔金片全部移动到另外一个针上时需要移动的最少步数是多少?(由于结果太大,现在只要求你算出结果的十进制位最后六位)
- 输入
- 第一行是一个整数N表示测试数据的组数(0<N<20)
每组测试数据的第一行是一个整数m,表示起始时金片的个数。(0<m<1000000000) - 输出
- 输出把金片起始针上全部移动到另外一个针上需要移动的最少步数的十进制表示的最后六位。
- 样例输入
211000
- 样例输出
169375
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int time=scanner.nextInt(); int arr[]=new int[1000006]; arr[1]=1; for(int i=2;i<=1000005;i++) { arr[i]=(2*arr[i-1]+1)%1000000; } while(time--!=0) { int number=scanner.nextInt(); if(number>1000005) { if(number%1000000<6) { number=number%10+1000000; } else {number=number%1000000;} } System.out.println(arr[number]); } } }
0 0
- 汉诺塔(一) nyist88
- 汉诺塔(一)
- 88 汉诺塔(一)
- 汉诺塔(一)
- nyoj 汉诺塔(一)
- 汉诺塔(一)
- NYoj88 汉诺塔(一)
- 汉诺塔(一)
- nyoj 汉诺塔(一)
- 汉诺塔(一)
- 汉诺塔(一)
- 汉诺塔(一)
- 算法(一)汉诺塔
- NYOJ 汉诺塔(一)
- 南阳理工:汉诺塔(一)
- NYOJ 88 汉诺塔(一)
- NYOJ 88 汉诺塔(一)
- nyoj 88 汉诺塔(一)
- SAP HR Schema 详解(一)Payroll schema基础
- JAVA RPC:从上手到爱不释手
- 记录2
- 一些感悟
- errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccJmra7
- 汉诺塔(一)
- 用数据统计说话:2016年收入最高的编程语言与流行web框架
- 【北邮OJ】266. 分数加法-网研14
- java中zip与gzip实现文件压缩,解压
- 人脸数据集整理
- 关于Apache的那些事儿
- 5-2 打印学生选课清单 (25分)
- python3在windows下的编码问题
- 常见的php语法 报错