下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
#include
void hanoi(int disks,char source,char temp,char target)
{
if (disks == 1)
{
printf("move disk from %c to %c\n",source,target);
printf("move disk from %c to %c\n",target);
}
else
{
hanoi(disks - 1,target,temp);
hanoi(1,temp,target);
hanoi(disks - 1,target);
}
}
void hanoi2colors(int disks)
{
char source = 'A';
char temp = 'B';
char target = 'C';
int i;
for (i = disks / 2; i > 1; i--)
{
hanoi(i - 1,temp);
printf("move disk from %c to %c\n",temp);
hanoi(i - 1,source);
printf("move disk from %c to %c\n",target);
}
printf("move disk from %c to %c\n",temp);
printf("move disk from %c to %c\n",target);
}
int main()
{
int n;
printf("请输入盘数:");
scanf("%d",&n);
hanoi2colors(n);
return 0;
}
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
总结
以上是编程之家为你收集整理的C语言经典算法 - 双色河内塔全部内容,希望文章能够帮你解决C语言经典算法 - 双色河内塔所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!