【C++笔试题】递归判断数组是否是递增数组

递归判断长度为N的数组是不是递增数组。递归方法:记录最大的值,如果比这个值大,则继续,否则终止.

递归三部曲:

1. 明确递归函数的参数和返回值。(个人理解:注意参数已经更新)

2.明确终止条件

3.明确单层递归的逻辑

1.递归参数和返回值

这里参数已经给出,所以我们要明确的是,参数更新的逻辑

下一次传入的参数应该是N-1

所以返回值:

一个是递归函数fun(a, N - 1)

另一个是大小判断逻辑。

2.终止条件:

cpp 复制代码
if (N <= 1) {
    return true; // 只有一个元素,天然有序,停止递归
}

3.单层递归的逻辑:

检查数组最后两个元素之间的大小关系

cpp 复制代码
a[N-1] > a[N-2]

4. 总结:

  • 怎么变? (N 减小)

  • 啥时停? (N <= 1)

  • 当下干啥? (比较最后两个数)

cpp 复制代码
bool fun(int a[], int N) {
    if (N <= 1) {
        return true;
    }
    return fun(a, N - 1) && (a[N-1] > a[N-2]);
}
相关推荐
不吃香菜学java5 小时前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
BestOrNothing_20155 小时前
C++零基础到工程实战(4.3.3):vector数组访问与遍历
c++·迭代器·stl·vector·动态数组
贵沫末5 小时前
python——打包自己的库并安装
开发语言·windows·python
charlie1145141915 小时前
通用GUI编程技术——图形渲染实战(三十三)——Direct2D与Win32/GDI互操作:渐进迁移实战
c++·图形渲染·gui·win32
文祐5 小时前
C++类之虚函数表及其内存布局(一个子类继承一个父类)
开发语言·c++
zuowei28896 小时前
华为网络设备配置文件备份与恢复(上传、下载、导出,导入)
开发语言·华为·php
xiaohe076 小时前
超详细 Python 爬虫指南
开发语言·爬虫·python
嗑嗑嗑瓜子的猫6 小时前
Java!它值得!
java·开发语言
xiaoshuaishuai87 小时前
C# GPU算力与管理
开发语言·windows·c#
lsx2024067 小时前
SVN 创建版本库
开发语言