news 2026/9/28 20:19:53

递归精髓:汉诺塔的智慧与数组传参揭秘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
递归精髓:汉诺塔的智慧与数组传参揭秘

递归

汉诺塔代码:

1.问题n 和 问题n-1 直接的递推关系
2.结束条件

递归过程

1、 将n-1个盘子从 A -> B //递归
2、 将剩下的那个盘子从A->C
3、 将n-1个盘子从B->C //递归

结束条件

看 n == 1 //A->C

起始 辅助 目标
n个盘子 A B C
n-1 A C B

hanoi(3,'A','B','C')
|---hanoi(2,'A','C','B');
|---hanoi(1,'A','B','C');
|---move('A','C'); //1 A-->C
|---move('A','B'); //起始 目标//2 A-->B
|---hanoi(1,'C','A','B');
|---move('C','B'); //3 C-->B
|---move('A','C'); //4 A-->C
|---hanoi(2,'B','A','C');
|---hanoi(1,'B','C','A');
|---move('B','A'); //5 B-->A
|---move('B','C'); //起始 目标//6 B-->C
|---hanoi(1,'A','B','C');
|---move('A','C'); //7 A-->C

代码:

整型数组作为函数参数

形参能不写成数组形式,实参能不能传递数组过去

int max(int a,int b)
{

}


int a[10] = {1,2,3,4};

数组元素
a[0] //数组元素 就是int型变量

要传递整个数组

//想要把整个数组的数据传递过去

数据类型 角度
a //数组名

数据类型 int[10]
形参 intx[10]

void printArray(int x[10]) //形参? ---实参该咋传
{

}

数组传参本质

整型一维数组
void printArray(int x[10]) //形参? ---实参该咋传
void printArray(int *x)//编译器是这么看的? int *表示是指针类型
{

}

[小结]

1.整型一维数组作为函数参数
形参
//形式上 ---数组形式
printArray(int a[],int len) //需要一个数组形式的形参和数组长度的形参
//本质上---指针变量(编译器理解的本质)
printArray(int *a,int len) //指针变量 用来接收数组首元素的地址
实参
printArray(数组名,数组长度) //实参传递 要传数组名 和 数组长度
//数组名 从代表值的角度 代表的是首元素的地址

练习:

找出最大值
输入10个数
找出最大值

说明:
函数传参 ---实参 给到 形参 ,实际上是将实参的值 给到 形参变量
值传递
地址传递

练习:
逆序

进行交换,修改的实际上主函数 数组a空间中的数据

练习:
排序
选择排序

练习:
查找

字符型一维数组

字符型一维数组 --- 用来存放一个字符串

语法点:
字符型 一维数组 做函数参数
形参 数组形式 //不需要数组长度---字符串本身有结束标志
实参 数组名

练习

二维数组作为函数参数

整型:

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

void printArray(int a[3][4]) //形参可以写成数组的形式
void printArray(int(*a)[4]) //本质编译器还是当作指针看的

二维数组的本质

一维数组的一维数组
void printArray(int[4] a[3]) //形参 可以写成数组的形式
void printArray(int[4] *a) //本质编译器还是当作指针看的

注意:
二维数组作为函数参数
形参 二维数组形式 行数的变量
实参 二维数组数组名 行数的值

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 20:19:49

如何用Lap重复检测功能一键清理照片冗余、释放硬盘空间

如何用Lap重复检测功能一键清理照片冗余、释放硬盘空间 【免费下载链接】lap An offline-first photo manager for large local libraries 项目地址: https://gitcode.com/GitHub_Trending/lap3/lap Lap 是一款离线优先的本地照片管理器,专为管理数万张照片的…

作者头像 李华
网站建设 2026/9/28 20:19:06

买现成源码还是自己从零开发:这笔账该怎么算

我见过不少技术创业者纠结买现成源码和从零开发怎么算账,纠结了两个月项目还没上线,窗口期先没了。这笔账的核心不是比价格,是比“你现在缺的是时间还是缺的是人”。缺时间的,现成源码大概率划算;有稳定团队又不赶进度…

作者头像 李华
网站建设 2026/9/28 20:17:56

论文提交前的一小时,最该先看哪里?

晚上十一点,论文终于写完了。小林把文档保存下来,准备提交检测,却在最后一步停住了:重复率需要处理,AI生成痕迹也需要关注,可如果一股脑儿全部改写,原本的论证逻辑会不会被带偏?很多…

作者头像 李华
网站建设 2026/9/28 20:16:56

书霸AI降重清单|www.shubaai.com

论文写完,并不等于可以直接提交。很多同学最后卡住的地方,往往是重复率、AIGC检测结果,或文档格式没有处理妥当。书霸AI的“降重/降AIGC”功能,可以把这些检查集中到一个流程中完成。使用前,建议先准备好论文原稿&…

作者头像 李华