zoukankan      html  css  js  c++  java
  • HDU 1996

    Problem Description
    n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于
    发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱
    子从下往上的大小仍保持如下关系 :
    n=m+p+q 
    a1>a2>...>am
    b1>b2>...>bp
    c1>c2>...>cq
    计算所有会产生的系列总数.
     
    Input
    包含多组数据,首先输入T,表示有T组数据.每个数据一行,是盘子的数
    目N<30.
     
    Output
    对于每组数据,输出移动过程中所有会产生的系列总数。
     
    Sample Input
    3 1 3 29
     
    Sample Output
    3 27 68630377364883
     
     
     
    是排列组合问题,直接是3的n次方
    代码如下:
    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
        long long int Hanoi[30];
        int i,t,n;
        for(i = 1;i < 30;i ++)
        {
            Hanoi[i] = pow(3,i);
        }
        while(scanf("%d",&t)!=EOF)
        {
            while(t --)
            {
                scanf("%d",&n);
                printf("%I64d
    ",Hanoi[n]);
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    wordcloud库基本介绍和使用方法
    文本词频同意问题分析
    集合
    操作系统
    操作系统的发展史
    基础练习
    random库的使用
    【量化】五日均价策略
    【量化】多只股票策略
    【量化】指数数据
  • 原文地址:https://www.cnblogs.com/52Cassie/p/4967563.html
Copyright © 2011-2022 走看看