n盘m塔 汉诺塔

Posted ls-joze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了n盘m塔 汉诺塔相关的知识,希望对你有一定的参考价值。

技术图片

 

 

int dp[maxn][maxn];
signed main()

    /*n个盘 m座塔*/
    int n,m;
    n=31,m=31;

    /*初始化动规边界*/
    dp[2][1]=1;//初始化两座塔的情况
    for(int i=3; i<=m; ++i) dp[i][1]=1;//初始化只有一个盘的情况
    for(int i=2; i<=n; ++i) dp[3][i]=2*dp[3][i-1]+1;//初始化只有三座塔的情况

    /*计算m塔问题,m>3 */
    for(int i=4; i<=m; ++i)
        for(int j=2; j<=n; ++j)
            dp[i][j]=dp[i-1][j];
            for(int k=1; k<j; ++k)
                dp[i][j]=min(2*dp[i][k]+dp[i-1][j-k],dp[i][j]);
        
    

    /*输出结果*/
    for(int i=3;i<=m;++i)
        for(int j=1;j<=n;++j) pfk(dp[i][j]);
        pfhh;
    

    return 0;

 

以上是关于n盘m塔 汉诺塔的主要内容,如果未能解决你的问题,请参考以下文章

汉若塔系列续:汉诺塔VIII汉诺塔IX汉诺塔X。

汉诺塔VII

汉诺塔完整程序小结

汉诺塔(代码记录+注释)

java 算法 递归 汉诺塔(计算移动次数)

从汉诺塔问题来看“递归”本质