zoukankan      html  css  js  c++  java
  • 四柱汉诺塔 1559

    题目描述

    “汉诺塔”,是一个众所周知的古老游戏。现在我们把问题稍微改变一下:如果一共有4根柱子,而不是3根,那么至少需要移动盘子多少次,才能把所有的盘子从第1根柱子移动到第4根柱子上呢? 为了编程方便,只需要输出这个结果除以10000的余数。

    输入描述

    该题含有多组测试数据,每组一个正整数n。(0<n<=50000)

    输出描述

    一个正整数,表示把n个盘子从第1根柱子移动到第4根柱子需要的最少移动次数mod 10000的值。

    样例输入

    15

    样例输出

    129

     1 #include <iostream>
     2 using namespace std;
     3 int main(){
     4     int n;
     5     while(cin>>n){
     6         unsigned long long m[50001];
     7         int i,j,a=0,b=2,s=2;
     8         m[1]=1;
     9         for(i=2;i<50001;i++){
    10             m[i]=m[i-1]+s;
    11             m[i]=m[i]%10000;
    12             a=a+1;
    13             if(a==b){
    14                 s=s*2;
    15                 s=s%10000;
    16                 b++;
    17                 a=0;
    18             }
    19         }
    20         cout<<m[n]<<endl;
    21     }
    22 } 
    zz
  • 相关阅读:
    线程和进程
    Map和Collection
    数组
    泛型
    堆和栈
    Java的三大特性
    Log日志
    关系运算
    switch
    main 及Scanner
  • 原文地址:https://www.cnblogs.com/zq-dmhy/p/11101518.html
Copyright © 2011-2022 走看看