解决汉诺塔的问题

// 汉诺塔.cpp : 定义控制台应用程序的入口点。 
// 
//程序在VS2017写的
#include "stdafx.h"//程序在VS2017写的,需要这个头来预加载 
#include <iostream> 
#include<stdlib.h>//在VS2017中在运行结束后不关闭窗口用到的库,其他IDE可以删掉
using namespace std;

void hanoi(int n, char A, char B, char C) {
    if (n == 1) {
        cout << A << "->" << C << endl; 
    } else {
       hanoi(n - 1, A, C, B);
       cout << A << "->" << C << endl;
       hanoi(n - 1, B, A, C);
    }
} 
int main() {
    int n = 1;
    char A = 'A', B = 'B', C = 'C';
    cin >> n >> A >> B >> C;
    hanoi(n, A, B, C); 
    system("pause"); //在VS2017中在运行结束后不关闭窗口,其他IDE可以删掉
    return 0;
}

 

看图吧少年

(先写作业了,逃)

 


 

更新:

汉诺塔问题是著名的一种分治算法

反正问题就是将一个问题分成若干个问题,然后逐个解决,然后得到一个同意的解

 

2 条评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  1. 星空游戏

    只能坐个沙发了

    1. 很懒的樱花

      233