【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]);
}
相关推荐
C++ 老炮儿的技术栈5 分钟前
在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
c语言·c++·windows·git·vscode·visual studio
二哈喇子!6 分钟前
空指针异常
开发语言
咚为12 分钟前
Rust Print 终极指南:从底层原理到全场景实战
开发语言·后端·rust
%xiao Q17 分钟前
GESP C++五级-202406
android·开发语言·c++
Psycho_MrZhang18 分钟前
Neo4j Python SDK手册
开发语言·python·neo4j
Traced back25 分钟前
# C# + SQL Server 实现自动清理功能的完整方案:按数量与按日期双模式
开发语言·c#
Sarvartha29 分钟前
C++ STL 栈的便捷使用
c++·算法
sin220129 分钟前
MyBatis的执行流程
java·开发语言·mybatis
web3.088899941 分钟前
1688图片搜索API,相似商品精准推荐
开发语言·python
二哈喇子!41 分钟前
JAVA环境变量配置步骤及测试(JDK的下载 & 安装 & 环境配置教程)
java·开发语言