zoukankan      html  css  js  c++  java
  • Hanoi塔

    1327: Hanoi双塔问题

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 23  解决: 7
    [提交][状态][讨论版][命题人:外部导入]

    题目描述

    给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将 这些国盘移到C柱上,在移动过程中可放在B柱上暂存。要求:

    (1)每次只能移动一个圆盘;

    (2) ABC三根细柱上的圆盘都要保持上小下大的顺序;

    任务:An2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An

    输入

    输入文件hanoi.in为一个正整数n,表示在A柱上放有2n个圆盘。

    输出

    输出文件hanoi.out仅一行,包含一个正整数,为完成上述任务所需的最少移动次数An

    样例输入

    1
    

    样例输出

    2
    

    提示

    对于50%的数据, 1<=n<=25

    对于100% 数据, 1<=n<=200

    设法建立AnAn-1的递推关系式。


    #include<stdio.h>
    #define N 500
    int a[N];
    void pow(int a[N])
    {
        int point=0,i;
        for(i=499;i>=0;i--)
        {
            a[i]=a[i]*2+point;
            if(a[i]>=10)
            {
                a[i]-=10;
                point=1;
            }
            else point=0;
        }
    }
    int main()
    {
        int n,i;
        a[499]=1;
         
        scanf("%d",&n);
        for(i=0;i<=n;i++)
        pow(a);
         
        a[499]-=2;
         
        for(i=0;i<N;i++)
        if(a[i]!=0)
        break;
        for(;i<N;i++)
        printf("%d",a[i]);
     } 

  • 相关阅读:
    13点睛Spring4.1-Spring EL
    12点睛Spring4.1-Spring Aware
    11点睛Spring4.1-Property Editor
    10点睛Spring4.1-Application Event
    09点睛Spring4.1-AOP
    08点睛Spring4.1-Profile
    07点睛Spring4.1-BeanPostProcessor
    06点睛Spring4.1-Bean的初始化和销毁
    05点睛Spring4.1-国际化
    Solaris 11 配置IP地址
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10003083.html
Copyright © 2011-2022 走看看