递归的初步应用

/***********************************************
有n级台阶,每次可以走1、2或3级,求共有多少种走法
***********************************************/
#include <stdio.h>
int Ways(int n);
int main()
{
	int n;
	int res;
	scanf("%d",&n);
	res=Ways(n);
	printf("%d\n",res);
	return 0;
}
int Ways(int n)//利用递归
{
	return n>=3?Ways(n-1)+Ways(n-2):n;
}
/**************************
输入n,求1到n的所有整数的和
**************************/
#include <stdio.h>
int sumBy(int n);//用递归解决1到n的和的问题
int main()
{
	int n;
	int ans;
	scanf("%d",&n);
	ans=sumBy(n);
	printf("%d\n",ans);
	return 0;
}
int sumBy(int n)
{
	return n==1?1:sumBy(n-1)+n;
}
#include <stdio.h>
int fibona(int n);//求fibonacci数列第n项
int main()
{
	int n;
	int th;
	scanf("%d",&n);
	th=fibona(n);
	printf("第n项:%d\n前n项的和:%d\n",th,sum);
	return 0;
}
int fibona(int n)
{
	return n>=3?fibona(n-1)+fibona(n-2):n;
}
时间: 2024-11-08 21:36:24

递归的初步应用的相关文章

K 近邻算法(KNN)与KD 树实现

KD树节点 /// <summary> /// KD树节点 /// /2016/4/1安晟添加 /// </summary> [Serializable] public class KDTreeNode { /// <summary> /// 获取或设置节点的空间坐标 /// </summary> public double[] Position { get; set; } /// <summary> /// 获取或设置分裂维度的索引 /// G

File、FileFilter、递归初步

java.io.File 文件和目录 路径名的抽象表示形式 文件:File 存储数据的 目录:Directory 文件夹 用来存储文件 路径:Path 定位具有平台无关性 在任意平台都可以使用 File类的静态常量 static String pathSeparator 与系统有关的路径分隔符 //打印 ; static String separator 与系统有关的名称分隔符 //打印 \ uri 统一资源标识符 包含url mailto:[email protected] thrunder:

高维空间中的体积(包含递归思想的初步理解)

n维超球体的体积的变化的特点:当n<=7的时候,体积是增大的:当n>7的时候,体积是缩小的,可以小到0 因此可以从中推出,如果以固定的半径进行取样,这取到的样本的数量是先增大,然后再缩小的. 递归思想的通俗理解:你打开面前这扇门,看到屋里面还有一扇门.你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它.若干次之后,你打开面前的门后,发现只有一间屋子,没有门了.然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门

递归神经网络的不可思议的有效性 [ 译 / 转 ]

递归神经网络(Recurrent Neural Networks,RNNs)就像一种神奇的魔法.我至今仍对于我第一次训练递归网络记忆犹新.那个网络是被用于生成图像说明(Image Captioning)的.仅仅进行了几十分钟的训练,我的第一个模型(这个模型中相当一部分超参数都是我随意选取的)就开始能给图片生成看起来非常不错的描述,而这些描述基本上能称得上是有意义的.有时结果的质量和模型复杂度之间的关联性完全超出你的预期,而我的第一次实验就是一个例子.为什么当时这些训练结果看起来如此惊人?是因为大

linux 时钟源初步分析linux kernel 时钟框架详细介绍

初步概念: 看datasheet的关于时钟与定时器的部分, FCLK供给cpu, HCLK供给AHB总线设备(存储器控制器,中断控制器.LCD控制器.DMA.USB主机控制器等), PCLK供给APB总线上的设备(watchdog.IIS.i2c. pwm.定时器.ADC.uart.gpio.rtc.spi) 上电时 fclk的时钟等于外部时钟fin, 然后等待LOCKTIME后, 依照MPLLCON寄存器的设置,倍频到高频. UPLLCON专用于USB同于MPLLCON. 关于分频: CLKD

递归讨论(一)

前段时间刚看完c++语法部分的内容,现在开始着手研究下,用c++实现下一些基本的排序算法. 因为是初学者的缘故,可能理解之处还是存在不到位之处,但权且当作学习过程中的一种心得体会,也算记录下自己学习的路程吧.(理解的浅陋之处望及时指出) 所谓递归,就是方法自己调用自己,从而实现代码上的简化,同时也简化阅读人员的可读性. 递归的优势在于:当要求解一个问题时,在求解过程中,会碰到同样的处理过程.这个求解的过程就是递归的方法,不断递归的就是这个处理过程,而递归让这个问题逐渐变小,最终回到递归基上. 递

算法笔记_017:递归执行顺序的探讨(Java)

目录 1 问题描述 2 解决方案 2.1 问题化简 2.2 定位输出测试 2.3 回顾总结 1 问题描述 最近两天在思考如何使用蛮力法解决旅行商问题(此问题,说白了就是如何求解n个不同字母的所有不同排序的序列问题,即共有n!次不同排序). 为此,我认真看了一篇出自CSDN上的博客文章,其中有一段核心代码就是在for循环里面添加一句递归调用语句,来实现n!次排序.因此,我对文章中的那段核心代码苦苦不得其解--其执行顺序究竟是咋样的呢? 附其简要代码: public int count = 0; p

【算法】2 由股票收益问题再看分治算法和递归式

回顾分治算法 分治算法的英文名叫做"divide and conquer",它的意思是将一块领土分解为若干块小部分,然后一块块的占领征服,让它们彼此异化.这就是英国人的军事策略,但我们今天要看的是算法. 如前所述,分治算法有3步,在上一篇中已有介绍,它们对应的英文名分别是:divide.conquer.combine. 接下来我们通过多个小算法来深化对分治算法的理解. 二分查找算法 问题描述:在已排序的数组A中查找是否存在数字n. 1)分:取得数组A中的中间数,并将其与n比较 2)治:

PHP初步(中)

一.文件载入 文件载入:将目标文件的代码载入到当前的位置上,有时候也叫流程控制. 文件载入的目的是实现网站的分层设计,因为不同的页面可能有很多相同的区域(相同的代码),这些相同的代码只需要写一次,有需要的时候载入进来即可,提高代码的重用,提高效率. 载入的文件不管是什么类型,实际上载入的是文件里面的代码,跟文件是什么类型无关.载入的代码,除了php代码可以执行,其他的脚本也可以执行. include.require.include-once.require-once include'目标文件地址