递归的小栗子

简介:

递归函数特点:

  1. 每一级函数调用时都有自己的变量,但是函数代码并不会得到复制,如计算5的阶乘时每递推一次变量都不同;

  2. 每次调用都会有一次返回,如计算5的阶乘时每递推一次都返回进行下一次;

  3. 递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;

  4. 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;

  5. 递归函数中必须有终止语句。

例子:

猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。

程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int  getPeachNumber(n)
{
     int  num;     //定义所剩桃子数
     if (n==10)
     {
        return  1;      //递归结束条件
    
     else
     {
         num =(getPeachNumber(n+1)+1)*2;   
         printf ( "第%d天所剩桃子%d个\n" , n, num);  //天数,所剩桃子个数
     }
     return  num;
}
int  main()
{
     int  num = getPeachNumber(1);
     printf ( "猴子第一天摘了:%d个桃子。\n" , num);
     return  0;
}

结果:

wKioL1mVdQii798EAAAmTJOIPvw353.png

getPeachNumber(2)=getPeachNumber(1)/2 - 1
推出
getPeachNumber(1)=(getPeachNumber(2)+1)*2
所以
num = (getPeachNumber(n+1)+1)*2



本文转自 lillian_trip 51CTO博客,原文链接:http://blog.51cto.com/xiaoqiaoya/1957161,如需转载请自行联系原作者

相关文章
|
11月前
|
机器学习/深度学习 人工智能 并行计算
Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈
Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。
452 5
Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈
|
机器学习/深度学习 自然语言处理 人机交互
综合RLHF、DPO、KTO优势,统一对齐框架UNA来了
在大型语言模型(LLM)的预训练中,尽管模型已接触数万亿个标记,但仍可能生成不符合预期的响应。为解决这一问题,研究者提出了RLHF、DPO和KTO等对齐技术。然而,这些技术各有局限。为此,论文《UNA: Unifying Alignments of RLHF/PPO, DPO and KTO by a Generalized Implicit Reward Function》提出了一种新的统一对齐方法UNA。UNA通过引入广义隐式奖励函数,成功将RLHF/PPO、DPO和KTO统一起来,简化了训练过程,提高了模型的鲁棒性和性能。
364 15
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
342 9
|
机器学习/深度学习 编解码 自然语言处理
ResNet(残差网络)
【10月更文挑战第1天】
|
资源调度 分布式计算 JavaScript
npm 和 Yarn:一场关于包管理的战争(上)
npm 和 Yarn:一场关于包管理的战争(上)
npm 和 Yarn:一场关于包管理的战争(上)
|
弹性计算 编解码 前端开发
阿里云ecs.c6.large服务器ECS计算型c6性能评测
阿里云服务器ECS计算型c6实例ecs.c6.large为2核4G配置,CPU采用Intel Xeon(Cascade Lake) Platinum 8269CY
792 0
阿里云ecs.c6.large服务器ECS计算型c6性能评测
|
移动开发 开发框架 小程序
蚂蚁移动开放平台mPaaS:金融业务增长的新引擎
本文整理自蚂蚁集团金融云资深技术专家祁晓龙在2021阿里云金融数据智能峰会的分享。详细讲解了蚂蚁移动开发平台mPaaS打通本地生活场景,实现金融业务与泛金融业务的融合,打造用户增长新方式的相关经验和观点
767 0
蚂蚁移动开放平台mPaaS:金融业务增长的新引擎
alipay.trade.query(统一收单线下交易查询)集成流程
接口名称:统一收单线下交易查询 英文名称:alipay.trade.query 用于查询订单是否存在以及订单的详细信息; 一、文档地址 官方文档地址:[url]https://docs.open.alipay.com/api_1/alipay.trade.query/[/url] 二、开发前准备工作 调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url] 注意事项:1、支持沙箱测试;2、需签约并添加功能;3、支持第三方调用。
3317 12
|
JSON Kubernetes Cloud Native
ChaosBlade:从零开始的混沌工程(二)
本篇为系列文章第二篇,将介绍 ChaosBlade-Operator 的安装方式以及基本概念,并进行一个简单的示例实验。
3539 0
|
供应链 API
在平台上添加发快递上门取件的功能-快递物流上门取件API对接
上门取件,是电商平台为寄件用户提供的通过一键下单到快递员,并在2小时上门取件的寄件服务。适用于散客在线寄件、电商退货上门取件等业务场景;通过API指令由系统自动将消息发送给物流公司和快递员,由快递员上门取货揽件与在线收款; 快递鸟上门预约取件api接口 解决寄件客户不用线下找快递员、不用苦苦等待,通过上门取件服务让客户可以轻松选择约定时间、地点完成寄件需求。
2284 0
在平台上添加发快递上门取件的功能-快递物流上门取件API对接

热门文章

最新文章