首页 > 编程知识 正文

汉诺塔递归算法c语言求次数,汉诺塔c语言详解

时间:2023-05-04 12:42:25 阅读:153234 作者:1133

源代码:

#包含

voidmovedisc(unsignedn,char fromneedle,char toneedle,char usingneedle );

int i=0;

int main () )

{

无符号n;

printf (pleaseenterthenumberoflocomotive : );

scanf('%d ',n ); 输入//n值

打印((t needle : (ta ) tb ) tc(n ) );

movedisc(n,' a ',' c ',' b ' );//从a上面借b把n个盘子移动到c上面

/*****************************。

//在这里放入以下代码,将C上的n盘又放回a,删除这里的代码汉诺威问题的源代码

for(intj=1; j=(int ) n; j )

{

I;

printf((t[%d]: ) t-

}

/*****************************。

printf((ttotal: ) t%d(n ),I );

scanf('%d ',n );

返回0;

}

voidmovedisc(unsignedn,char fromneedle,char toneedle,char usingneedle ) )。

{

是if(N0 )

{

从fromneedle使用toneedle将N-1盘移动到usingneedle

movedisc(n-1,fromneedle,usingneedle,toneedle );

I;

将其中一个fromneedle盘子转移到toneedle

sitch (来自) )。

{

案例a ' :

是sitch(toNeedle )

{

案例b ' :

printf((t[%d]:(t--------n ),I,n,n );

布雷克;

案例c ' :

printf((t ) (%d ) : (t---------- n )、I、n、n );

布雷克;

}

布雷克;

案例b ' :

是sitch(toNeedle )

{

案例a ' :

printf((t[%d]: ) t-

布雷克;

案例c ' :

printf((t(%d ) :(t(t--------(n ),I,n,n ) );

布雷克;

}

布雷克;

案例c ' :

是sitch(toNeedle )

{

案例a ' :

printf((t[%d]: ) t-

布雷克;

案例b ' :

printf((t[%d]:(t ) t-)

布雷克;

}

布雷克;

}

从usingneedle使用fromneedle将N-1个盘子移动到toneedle

movedisc(n-1,usingneedle,toneedle,fromneedle );

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。