大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
汉罗塔C语言算法新手入门(3分钟学会)
前言
我相信大家在刚接触C语言时对汉罗塔递归算法有些头痛,现在依旧头痛的小朋友不要担心,你只要学完这篇文章,我相信你对汉罗塔算法十分感兴趣的。一看就会,不信试试?
具备知识
在看这篇文章之前,首先你得学会C语言函数知识点,仅此而已。
1.直接上代码
#include<stdio.h>
int main()
{
void move(int n,char a,char b,char c); //定义汉罗塔函数
int n; //板的个数
scanf("%d",&n);
move(n,'a','b','c'); //调用函数
return 0;
}
void move(int n,char a,char b,char c)
{
if(n==1)
printf("%c->%c\n",a,c); //当只有一块需移动的板时,则直接从‘a'移动到'b'
else
{
move(n-1,a,c,b); //n-1个板数从a移动到c,再从c移动到b
printf("%c->%c\n",a,c);
move(n-1,b,a,c); //n-1个板数从b,借助a,移动到c
}
}
是不是看懂了呢?我知道就这么简**单,相信你现在一定解决了这道题目.
2.分析
从上面代码我们可以看出,我们在自定义函数内调用了自身,这就是递归函数的本质,当你学会了递归函数的用法,你会发现,你写循环函数的次数会变少了,直接调用自身,显得代码整洁,易懂。或者,你是一名刚刚学C语言的朋友,为什么在定义函数时用 void不用int呢?这个呢,你不必太纠结,花个30秒去查看一下其它的博客,大致就会了解了.
3.小编恳求
这是我的第一篇博客,希望大家多多支持,不懂的可以评论区发言,还有,我写的不好的地方希望大家指正,在此,表达感谢,感谢大家看这篇博客。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182754.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...