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

d093 汉诺塔

时间:2023-03-17 19:23:26浏览次数:32  
标签:char ch int d093 汉诺塔 solve getchar

#include<bits/stdc++.h>
using namespace std;

#define N 1005

int n;

inline int read() {
	int x = 0;
	bool f = 1;
	char ch = getchar();
	for (; !isdigit(ch); ch = getchar())
		if (ch == '-')
			f = 0;
	for (; isdigit(ch); ch = getchar())
		x = (x << 1) + (x << 3) + ch - '0';
	return f ? x : (~(x - 1));
}

void solve(int n,char a,char b,char c) {
	int t = 1;
	if (n == 1)
		cout<<"1:"<<a<<"->"<<c<<endl;
	else {
		solve(n - 1, a, c, b);
		cout<<n<<":"<<a<<"->"<<c<<endl;
//		printf("%d:%c->%c\n",&a,&c);
		solve(n - 1, b, a, c);
	}
}

int main() {
	n = read();
	char a = 'A', b = 'B', c = 'C';
	solve(n,a,b,c);
	return 0;
}

标签:char,ch,int,d093,汉诺塔,solve,getchar
From: https://www.cnblogs.com/pigAlg/p/17227908.html

相关文章

  • 汉诺塔问题
    起源汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆......
  • 汉诺塔问题——分而治之(引入递归,解决重复子问题)
    汉诺塔问题的引入:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图......
  • 关于汉诺塔的最简单理解
    最简单的汉诺塔算法解析,看不懂可以刀我今天给大家带来一个汉诺塔算法的讲解,应该是最简单的理解方法,首先我们得知道汉诺塔游戏规则,不会有人搜这个然后不知道规则吧?不会吧?......
  • 汉诺塔
    汉诺塔是计算机学教科书中常用的游戏,用来说明递归的魔力。该游戏有3个柱子和一组不同大小的圆盘,柱子从圆盘的中心穿过。题目描述设abc是三个塔座,开始时,在塔座a上有一叠......
  • 汉诺塔问题
    参考递归实现汉诺塔//汉诺塔递归版#include<stdio.h>//解决n个盘从a移到c,其中b为辅助的递归函数voidHanoi(intn,inta,intb,intc){//n:要移动的盘子的数量......
  • P1242 新汉诺塔
    新汉诺塔题目描述设有n个大小不等的中空圆盘,按从小到大的顺序从1到n编号。将这n个圆盘任意的迭套在三根立柱上,立柱的编号分别为A,B,C,这个状态称为初始状态......
  • P4285 [SHOI2008]汉诺塔
    [SHOI2008]汉诺塔题目描述汉诺塔由三根柱子(分别用A、B、C表示)和n个大小互不相同的空心盘子组成。一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形......
  • 汉诺塔系列
    汉诺塔1:a上面的盘子借助b到c公式:n=2^n-1;#include<iostream>#include<cstdio>usingnamespacestd;voidf(intn,charA,charB,charC){if(n>=1){f(n......
  • #yyds干货盘点# LeetCode程序员面试金典:汉诺塔问题
    题目:在经典汉诺塔问题中,有3根柱子及N个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的......
  • 关于汉诺塔问题一些体会(大学复健的第一篇随笔)
    递归条件相同结构的子问题————考察子问题与当前问题的关系存在可以单独计算基础结构所以我们考察第一个条件,汉诺塔的移动方式第一步将所有上层移动到一......