【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]);
}
相关推荐
博客180013 小时前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
郝学胜_神的一滴15 小时前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake
众少成多积小致巨1 天前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
clint4565 天前
C++进阶(1)——前景提要
c++
夜悊6 天前
C++代码示例:进制数简单生成工具
c++
郝学胜_神的一滴6 天前
CMake 021: IF 条件判据详诠
c++·cmake
_wyt0016 天前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
LDR0066 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术6 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园6 天前
C++20 Modules 模块详解
java·开发语言·spring