首页 > 其他分享 >汉诺塔Ⅲ

汉诺塔Ⅲ

时间:2022-12-14 23:01:16浏览次数:34  
标签:柱子 题目 sum 汉诺塔 时候 递推 步数

题目说要求所需的最大步数,先举n=1时候的例子,很明显就是先跳到中间那个柱子上,再跳到第三个柱子上,只需要两步,从这里就可以得出我们是依靠中间那个塔来增加我们的步数。
那如果n=2呢,结果如下图

其实把这两个盘看成一个整体,我们也就是把他运到了中间那个柱子上(第四步),然后再运到右边那个柱子上(第八步)。
再看n=3的时候,结果如下图

我们再移动上面两个盘的时候,就可以将其视为一个整体,就可以发现在1 2两步的时候和n=2的时候的第4步和第8步是一样的(把最下面那个最大的盘忽略了,再来看图就很容易看出来了),也就是说明n=3的时候的1 2两步的步数和n=2的时候的总步数是一样的,如图下去,我们移动最下面一个盘的时候当然只需要一步,再以此类推,发现a[3]=3 *a[2]+2。
那么其实到这里递推式也很明显了,n=4的时候,也就是把n=3的时候将视为整体的两个盘变为三个盘,递推式也就是a[n]=3 *a[n-1]+2。

所以学到这里,递推其实并没有想象的这么难,只可能是因为做到的题目比较少,每次看到新的题目的时候就会毫无头绪,但其实很大一部分递推的题目都是一个意思,无非就是将上一步的结果视为整体用到下一步,递推并没有想象的这么难吧,我一开始对递推也是毫无头绪的捏,题目写多了就会啦,虽然期末考可能并不能写到第七题第八题的样子,但是现在了解递推的规律和中心思想,早晚都会用到的。

点击查看代码
#include<stdio.h>
int main()
{
    int n, sum, t, i, j, m, r, sum1, sum2, max;
    while (scanf("%d", &t) != EOF)
    {
        sum = 2;
        for (i = 1; i < t; i++)
        {
            sum = sum * 3 + 2;
        }
        printf("%d\n", sum);
    }
    return 0;
}

标签:柱子,题目,sum,汉诺塔,时候,递推,步数
From: https://www.cnblogs.com/myy-zzb/p/16983756.html

相关文章

  • 汉诺塔(C语言)
    汉诺塔(TowerofHanoi),又称河内塔,是一个源于印度​古老传说的益智玩具​。大梵天​创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大......
  • 汉诺塔
    importjava.util.Scanner;publicclassEext{publicstaticvoidmain(String[]args){//汉诺塔5个盘子//将每个盘子从A挪到C下面的盘子不......
  • 汉诺塔问题(Hanoi)(2.0)
    大家晚上好呀,今天要给大家分享的是汉诺塔的代码,以我现在的水平实在难以解决这个汉诺塔代码的过程,毕竟我也只是一个刚入门的新手,所以我照着我老师的代码写了一遍,这个就先暂且......
  • c语言实现【汉诺塔问题】
    【汉诺塔问题】c语言实现1.问题描述汉诺塔问题是指:一块板上固定三个木杆:A、B、C。A赶上套有若干个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这些圆盘从A......
  • 汉诺塔问题及其变种问题解法(cpp版本)
    普通汉诺塔问题1.问题描述有三个柱子A、B、C,A柱子上有n个圆盘,圆盘的大小不等,大圆盘的在下,小圆盘的在上。将A柱子上的圆盘全部移动到C柱子上。每次只能移动一个圆盘,而且......
  • Java-汉诺塔问题
    //汉诺塔问题publicclassHannoi{ publicstaticvoidmain(String[]args){ Towertower=newTower(); tower.move(5,'A','B','C'); }}classTower{ //n......
  • 【PE806】Nim on Towers of Hanoi(汉诺塔游戏,生成函数)
    PE:ProjectEuler题意:汉诺塔游戏是如下的问题:有三根柱子,第一根柱子套有\(n\)个圆盘,圆盘从上往下半径递增。每次操作可以把套在某根柱子上的最上面的那个圆盘移到另一个......
  • 【程序员必会十大算法】之分治算法(汉诺塔问题)
    1.应用分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题…直到最后子问题可以简......
  • 基于FPGA的汉诺塔游戏
        汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天......
  • 汉诺塔问题分治求解
    汉诺塔问题在经典汉诺塔问题中,有3根柱子及n个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放......