【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]);
}
相关推荐
Irissgwe16 分钟前
c++类型转换
c++·类型转换·explicit·static_cast·const_cast·dynamic_cast·rtti
智者知已应修善业19 分钟前
【51单片机用T0定时器方式1,实现0.5S的时间间隔实现第一次一个灯亮、第二次二个灯亮,直到全部灯亮,然后重复整个过程】2023-12-29
c++·经验分享·笔记·算法·51单片机
在繁华处24 分钟前
Java从零到熟练(九):并发编程基础
java·开发语言
木头程序员30 分钟前
SSM框架学习笔记
java·开发语言·mysql·spring·maven
一起逃去看海吧35 分钟前
dify-03
java·linux·开发语言
智者知已应修善业1 小时前
【51单片机4位静态数码管显示1234】2023-11-14
c++·经验分享·笔记·算法·51单片机
抓虾爪1 小时前
ST意法代理商粤科源兴丨LSM6DS3全系列现货库存,LSM6DS3TR-C当天可发
c++
妙为1 小时前
unreal engine5.7.4,创建ThirdPerson第三人称模版,类型是c++崩溃
c++·ue5·虚幻·unreal engine5
郝学胜_神的一滴1 小时前
Qt 高级开发 021:零基础吃透 QVBoxLayout 垂直布局
c++·qt
Boom_Shu1 小时前
长方形的关系
数据结构·c++·算法