体験の複雑さ-ハノータ

4992 ワード

/*
*Copyright (c) 2014,             
*All right reserved
*    :test.cpp
*      :  
*    :2015 9 14 
*    :v1.10
*    :        
*/
(1)4   、
#include <stdio.h>
#define discCount 4
long move(int, char, char,char);
int main()
{
    long count;
    count=move(discCount,'A','B','C');
    printf("%d       %ld 
", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } }
<img src="http://img.blog.csdn.net/20150914172711041?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="512" height="315" alt="" />
(2)8   
#include <stdio.h>
#define discCount 8
long move(int, char, char,char);
int main()
{
    long count;
    count=move(discCount,'A','B','C');
    printf("%d       %ld 
", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } }
<img src="http://img.blog.csdn.net/20150914172908771?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="565" height="344" alt="" />
(3)16   
#include <stdio.h>
#define discCount 16
long move(int, char, char,char);
int main()
{
    long count;
    count=move(discCount,'A','B','C');
    printf("%d       %ld 
", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } }
    :
<img src="http://img.blog.csdn.net/20150914173104455?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="548" height="281" alt="" />
(4)20   
#include <stdio.h>
#define discCount 20
long move(int, char, char,char);
int main()
{
    long count;
    count=move(discCount,'A','B','C');
    printf("%d       %ld 
", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } }
    :
<img src="http://img.blog.csdn.net/20150914173223422?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="507" height="316" alt="" />
(5)24   
#include <stdio.h>
#define discCount 24
long move(int, char, char,char);
int main()
{
    long count;
    count=move(discCount,'A','B','C');
    printf("%d       %ld 
", discCount, count);     return 0; }
long move(int n, char A, char B,char C)
{
    long c1,c2;
    if(n==1)
        return 1;
    else
    {
        c1=move(n-1,A,C,B);
        c2=move(n-1,B,A,C);
        return c1+c2+1;
    }
}
<img src="http://img.blog.csdn.net/20150914173356630?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
      n     ,        。