【PTA+LeetCode】递归----代码练习

递归学习博客:博客地址

1.递归实现指数函数

在这里插入图片描述

double calc_pow( double x, int n ){
    //1.确定退出条件
    //2.找等价关系式
    if(n==1){
        return x;
    }
    return x*calc_pow(x,n-1);
}

2.递归计算Ackermenn函数

在这里插入图片描述

int Ack( int m, int n ){
    //1.确定退出条件
    //2.确定关系式
    if(m==0){
        return n+1;
    }
    if(n==0&&m>0){
        return Ack(m-1,1);
    }
    if(m>0&&n>0){
        return Ack(m-1,Ack(m,n-1));
    }
}

3.递归实现顺序输出整数

在这里插入图片描述

void printdigits( int n ){
    //1.确定函数要干嘛--输出整数,且按位输出
    //2.确定终止条件,只剩最后一个位的时候
    //3.递归关系式 n>9 输出n%10,n=n/10
    if(n<10){
        printf("%d\n",n);
    }
    if(n>=10){
        //printf("%d\n",n%10);在递归之前就输出的话,会从低位开始输出
        printdigits(n/10);
        printf("%d\n",n%10);
    }
}

4.递归求阶乘和

在这里插入图片描述

double fact( int n ){
    //1.确定函数要干嘛--求阶乘
    //2.确定终止条件,n<=2
    //3.递归关系式 n*f(n-1)
    if(n<=1){
        return 1;
    }
    return n*fact(n-1);
}
double factsum( int n ){
    //1.确定函数要干嘛--阶乘加和
    //2.确定终止条件,n=1
    //3.递归关系式 factsum(fact(n))
    //fact(n)+factsum(n-1);
    if(n==1){
        return 1;
    }
    double sum=0.0;
    for(int i=1;i<=n;i++){
        sum+=fact(i);
    }
    return sum;
}

5.递归求简单交错幂级数的部分和

在这里插入图片描述

double fn( double x, int n ){
    //1.确定函数要干嘛--求部分和
    //2.确定终止条件,n=1 加x
    //3.递归关系式 
    if(n==1){
        return x;
    }
    return pow(-1,n-1)*pow(x,n)+fn(x,n-1);
}

6.递归求Fabonacci数列

在这里插入图片描述

int f(int n){
    //1.确定函数要干嘛--求fb数列
    //2.确定终止条件,n=0 n=1
    //3.递归关系式 
    if(n==0 || n==1){
        return n;
    }
    return f(n-2)+f(n-1);
}

7.LeetCode50:Pow(x, n)

LeetCode50:Pow(x, n)

//只能过291 / 306 个通过的测试用例,要是全过得考虑降幂,直接累乘会溢出
double myPow(double x, long long n) {
    if(n==1){
        return x;
    }
    if(n==0&&x!=0){
        return 1;
    }
    if(n==-1){
        return 1/x;
    }
    if(n<-1){
        long long m=0-n;
        return (1/x)*myPow(1/x,m-1);
    }
//n>1的情况
    return x*myPow(x,n-1);

}

8.LeetCode231:2的幂

LeetCode231:2的幂

bool isPowerOfTwo(int n) {
    //1.确定函数要干嘛--判断是不是2的幂
    //2.确定终止条件,n=2
    //3.递归关系式 
    if (n < 1) return false;
    if(n!=1 && n%2==1){
       return false;
    }
    if(n==2 || n==1){
        return true;
    }
    return isPowerOfTwo(n/2);
}

9.LeetCode326:3的幂

LeetCode326:3的幂

bool isPowerOfThree(int n) {
    if(n==3 || n==1){
        return true;
    }
    if(n<1){
        return false;
    }
    if(n!=1 && n%3!=0){
        return false;
    }
    return isPowerOfThree(n/3);
}
//判断是不是4的幂也类似 代码如下
bool isPowerOfFour(int n) {
    if(n<1){
        return false;
    }
    if(n==4 || n==1){
        return true;
    }
    if(n%4!=0 && n!=1){ //直接排除了一些连4都不能整除的数
        return false;
    }
    return isPowerOfFour(n/4);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/459786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2.2 HTML5保留的常用标签

2.2.1 基础标签 1. 段落标签<p> 段落标签<p>和</p>用于形成一个新的段落&#xff0c;段落与段落之间默认为空一行进行分割。 2. 标题标签<h1>-<h6> HTML5使用<hn>和</hn>来标记文本中的标题&#xff0c;其中n需要替换为数字&#x…

R语言数据挖掘-关联规则挖掘(1)

一、分析目的和数据集描述 要分析的数据是美国一区域的保险费支出的历史数据。保险费用数据表的每列分别为年龄、性别、体重指数、孩子数量、是否吸烟、所在区域、保险收费。 本文的主要目的是分析在年龄、性别、体重指数、孩子数量、是否吸烟、所在区域中这些因素中&#xf…

第二十四节 Java 异常处理

什么是异常&#xff1f; 程序运行时&#xff0c;发生的不被期望的事件&#xff0c;它阻止了程序按照程序员的预期正常执行&#xff0c;这就是异常。异常发生时&#xff0c;是任程序自生自灭&#xff0c;立刻退出终止&#xff0c;还是输出错误给用户&#xff1f;或者用C语言风格…

WordPress网站启用cloudflare的CDN加速后,网站出现多重定向无法访问

这是一个使用Hostease的Linux虚拟主机的客户反馈的问题&#xff0c;Hostease的虚拟主机使用的也是cPanel面板&#xff0c;客户使用的是cPanel的softaculous安装的WordPress&#xff0c;但是在安装完成后&#xff0c;并且解析了域名之后&#xff0c;发现网站无法访问&#xff0c…

编译原理学习之-一个简单的语法制导翻译器

第二章 一个简单的语法制导翻译器 将具有代表性的程序设计语言语句翻译为三地址码&#xff08;一种中间表示形式&#xff09;&#xff0c;本章的重点是编译器的前端&#xff0c;特别是词法分析&#xff0c;语法分析和中间代码生产。 建立一个中缀算术表达式转换为后缀表达式的…

3.3 ss-sp寄存器,栈的push和pop指令

汇编语言 1. 栈 栈是一种具有特殊的访问方式的存储空间它的特殊性就在于&#xff0c;最后进入这个空间的数据&#xff0c;最先出去。即先进后出 1.1 栈的基本操作 入栈&#xff1a;入栈就是将一个新的元素放到栈顶出栈&#xff1a;出栈就是从栈顶取出一个元素栈顶的元素总是…

【计算机视觉】二、图像形成:2、几何基元和几何变换:2D变换

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)1. 各种变换的关系2. 变换公式3. 2D变换的层次4. python实现 一、向量和矩阵的基本运算 【计算机视觉】二、图像形成&#xff1a;1、向量和矩阵…

工业物联网平台在水务环保、暖通制冷、电力能源等行业的应用

随着科技的不断发展&#xff0c;工业物联网平台作为连接物理世界与数字世界的桥梁&#xff0c;正逐渐成为推动各行业智能化转型的关键力量。在水务环保、暖通制冷、电力能源等行业&#xff0c;工业物联网平台的应用尤为广泛&#xff0c;对于提升运营效率、降低能耗、优化管理等…

【C++设计模式】UML图的介绍及其画法

文章目录 前言一、UML图的介绍1.1 UML图是什么1.2 UML图的作用 二、UML图的画法2.1 最简单的UML图2.2 继承的UML图2.3 关联关系2.4 聚合关系2.5 组合关系2.6 依赖关系 总结 前言 在软件开发过程中&#xff0c;设计模式是一种被广泛应用的方法&#xff0c;它为解决特定问题提供…

利用数据驱动的MEG分析方法提取fMRI静息态网络

摘要 静息态网络(RSN)的电生理基础仍存在争议。特别是&#xff0c;尚未确定一个能够同样有效解释所有静息态网络的原理性机制。虽然脑磁图(MEG)和脑电图(EEG)是确定RSN电生理基础的首选方法&#xff0c;但目前没有标准的RSN分析流程。本文比较了从MEG数据中提取RSNs的两种现有…

Profinet转CC-Link网关操作技巧及功能

Profinet转CC-Link网关&#xff08;XD-PNCR20&#xff09;是一款可有效连接CCLINK总线和Profinet网络的通讯网关。Profinet转CC-Link网关主要功能是将各种CCLINK总线和Profinet网络连接起来&#xff0c;实现各种总线的互联通信。 Profinet转CC-Link网关连接到Profinet总线中做…

电源常用通讯电路详解

数字电源的采样和PWM驱动电路原理&#xff0c;通过这些技术&#xff0c;数字电源可以在内部形成控制闭环。但是要实现电源的控制和管理&#xff0c;还是需要与数字控制核心建立通讯连接。本期将带领大家了解数字电源常用的通讯电路。 一、常用的通讯方式 在前面数字电源与模拟…

Could not transform the global plan to the frame of the controller

报错&#xff1a; [ERROR] [1710509295.679888409, 296.695000000]: Extrapolation Error: Lookup would require extrapolation 0.003000000s into the future. Requested time 295.747000000 but the latest data is at time 295.744000000, when looking up transform from…

详解C++运算符重载

目录 运算符重载 1.运算符重载概念的回顾 2. 运算符重载 3. < 运算符重载 4. 赋值运算符 4.1赋值运算符和拷贝构造的区别 4.2赋值运算符重载格式 4.3 默认赋值重载 运算符重载 1.运算符重载概念的回顾 C为了增强代码的可读性引入了运算符重载&#xff0c;运…

力扣题目训练(21)

2024年2月14日力扣题目训练 2024年2月14日力扣题目训练605. 种花问题617. 合并二叉树628. 三个数的最大乘积289. 生命游戏299. 猜数字游戏149. 直线上最多的点数 2024年2月14日力扣题目训练 2024年2月14日第二十一天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;…

fortran,进坟墓了吗?新型快速开发工具突现,该何去何从?

在C、Python等流行语言风头正劲的时候&#xff0c;Fortran对于新一代开发者而言&#xff0c;却显得陌生甚至闻所未闻。 然而&#xff0c;Fortran作为计算机领域首个被广泛推广的高级语言&#xff0c;自1956年诞生至今已逾60载&#xff0c;承载着无数程序员的青春记忆。 在许多…

蓝桥杯 - 大石头的搬运工 C++ 前缀和 算法 附Java python

题目 思路和解题方法 这段代码的目标是计算给定点集的最小总移动成本&#xff0c;使得所有点都在同一直线上。它通过计算每个点左边和右边的移动成本&#xff0c;然后在所有可能的分割点中选择最小成本。具体步骤如下&#xff1a; 读取输入的点集&#xff0c;每个点表示为 (y, …

十三、项目相关方管理

十三、项目相关方管理 1、项目相关方管理 ​ 识别相关方是定期识别相关项目方&#xff0c;分析和记录他们的利益、参与度、相互依赖性、影响力和对项目成功的潜在影响的过程。 ** 1.1 关键技术 数据表现 相关方分析会产品相关方清单和关于相关方的各种信息&#xff0c;例如…

【机器学习】走进监督学习:构建智能预测模型的第一步

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

沃通SSL证书证券行业应用案例

金融证券行业作为现代经济体系中的重要组成部分&#xff0c;其安全性直接关系到国家经济的稳定和广大投资者的利益。沃通SSL证书基于密码技术保护传输数据的机密性、完整性&#xff0c;通过权威身份认证确保服务器身份真实性&#xff0c;已持续为众多知名证券行业客户提供服务&…