hannuo.cpp

来自「大学数据结构课程汉诺塔问题程序解决」· C++ 代码 · 共 61 行

CPP
61
字号
// hannuo.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <memory.h>

typedef struct tagdish
{ 
	int num[100];
	int n;
}dish;

void move(int n,dish dismov,int a,int b,int c)
{
	dish newdis;
	static step=0;
	if(n==1)
	{
		if(c==1)
			printf("%6d",dismov.num[n-1]);
		if(c==2)
			printf("%12d",dismov.num[n-1]);
		if(c==3)
			printf("%18d",dismov.num[n-1]);
		step++;
		printf("%25d\n",step);
	}
	else
	{
		memcpy(&newdis.num,&dismov.num,sizeof(int)*(n-1));
		newdis.n=n-1;

		move(newdis.n,newdis,a,c,b);
		
		if(c==1)
			printf("%6d",dismov.num[n-1]);
		if(c==2)
			printf("%12d",dismov.num[n-1]);
		if(c==3)
			printf("%18d",dismov.num[n-1]);
		step++;
		printf("%25d\n",step);

		move(newdis.n,newdis,b,a,c);
		
	}
}
		

int main(int argc, char* argv[])
{
	dish alldish;
	int i;
	for(i=0;i<15;i++)
		alldish.num[i]=i+1;
	alldish.n=15;
    move(4,alldish,1,2,3);
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?