递归递推练习
灵与尘
这个作者很懒,什么都没留下…
展开
-
递归递推练习―A―母牛的故事
Description 有一对夫妇买了一头母牛,它从第2年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0 Output 对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。 Sample Input 2 4 5 0原创 2017-03-30 19:20:01 · 456 阅读 · 0 评论 -
递归递推练习―K―强化斐波那契
Description 对于斐波那契数列想必各位已经见过了。这里给出一个加强版。 F[i] = i (i F[i] = F[i-1] + F[i-2] + F[i-3](i >= 4); Input 多组输入。每组输入一个整数n (1 Output 每组数据输出一个整数,代表F[n]。 Sample Input 1 4 Sample Output 1 6 1、原创 2017-04-05 22:55:22 · 191 阅读 · 0 评论 -
递归递推练习―J―数学黑洞
Description 任意一个4位自然数N(N不能是4个数字一样,如1111、2222、….9999是不可以的,N也不能是6174),将组成自然数N的4个数字重新排列,形成一个最大数和最小数,最大数和最小数相减,其差还是自然数,将差的各数字再重新排列,又形成一个最大数和最小数,最大数和最小数相减,其差还是自然数。反复进行,直到差是一个神秘数6174(数学黑洞)结束。 Input 输入数据有原创 2017-04-05 22:48:44 · 432 阅读 · 0 评论 -
递归递推练习―I―蟠桃记
Description 孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候一共有多少个桃子? Input 输入数据有多组,每组占一行,包含一个正整数n(1≤n≤30),表示只剩下一个桃子的时候是在第n天发生的。原创 2017-04-05 22:44:10 · 303 阅读 · 0 评论 -
递归递推练习―G―小银考呀考不过四级
Description 四级考试已经过去好几个星期了,但是小银还是对自己的英语水平担心不已。 小银打算好好学习英语,争取下次四级考试和小学弟小学妹一起拿下它! 四级考试的时候,监考老师会按考号分配固定的座位,但唯一不变的是每两个人之间肯定至少会留下两个空座位,原因相信大家都懂得。 那么问题来了,我们现在只关注教室里的一排座位,假设每排有n个座位,小银想知道这一排至少坐一个人的前提下,一共有原创 2017-04-05 22:25:35 · 280 阅读 · 0 评论 -
递归递推练习―H―三国佚事——巴蜀之危
Description 话说天下大势,分久必合,合久必分。。。却道那魏蜀吴三国鼎力之时,多少英雄豪杰以热血谱写那千古之绝唱。古人诚不我欺,确是应了那句“一将功成万骨枯”。 是夜,明月高悬。诸葛丞相轻摇羽扇,一脸愁苦。原来是日前蜀国战事吃紧,丞相彻夜未眠,奋笔急书,于每个烽火台写下安排书信。可想,这战事多变,丞相运筹 帷幄,给诸多烽火台定下不同计策,却也实属不易。 谁成想这送信小厮竟投靠原创 2017-04-05 22:35:12 · 305 阅读 · 0 评论 -
递归递推练习―F―计算组合数
Description 计算组合数。C(n,m),表示从n个数中选择m个的组合数。 计算公式如下: 若:m=0,C(n,m)=1 否则, 若 n=1,C(n,m)=1 否则,若m=n,C(n,m)=1 否则 C(n,m) = C(n-1,m-1) + C(n-1,m). Input 第一行是正原创 2017-04-05 22:22:32 · 344 阅读 · 0 评论 -
总结:递归递推
递归递推就是在一个问题的前后结果与过程有联系,呈现某种关系的时候,我们就可以用前面的结果通过方程或者某种计算来推出后面的结果,使得计算效率大大提高。 但是有时候在计算多个结果的时候,每次都会从最开始的结果往后递归递推,每次计算都需要计算前面的结果,浪费大量的时间,很容易就会TLE,因此我们可以用数组储存结果,或者预处理的方法来减少计算时间。 在处理递归递推问题的原创 2017-04-17 19:12:24 · 259 阅读 · 0 评论 -
递归递推练习―E―养兔子
Description 一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。 Input 测试数据包括多组,每组一行,为整数n(1≤n≤90)。 输入以0结束。 Output 对应输出第n天有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制原创 2017-03-30 19:52:17 · 240 阅读 · 0 评论 -
递归递推练习―D―汉诺塔系列1
Description n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系: n=m+p+q a1>a2>...>am b1>b2>...>bp c1>c2>...>cq 计算所有会产生的系列总数。 Input 包含多组数原创 2017-03-30 19:46:38 · 502 阅读 · 0 评论 -
递归递推练习―C―递归的函数
Description 给定一个函数 f(a, b, c): 如果 a ≤ 0 或 b ≤ 0 或 c ≤ 0 返回值为 1; 如果 a > 20 或 b > 20 或 c > 20 返回值为 f(20, 20, 20); 如果 a 其它情况返回 f(a−1, b, c) + f(a−1, b−1, c) + f(a−1, b, c−1) − f(a-1, b-1, c-1)。 看起原创 2017-03-30 19:37:51 · 496 阅读 · 0 评论 -
递归递推练习―B―王小二切饼
Description 王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:“饼不许离开砧板,切n(1 Input 输入切的刀数n。 Output 输出为切n刀最多切的饼的块数。 Sample Input 100 Sample Output 5051 1、题意:切圆,输出切n刀时最多切多少块。 2、思路:当n为1时,2块,n>1时,为n+(第n-1刀时的结果)。原创 2017-03-30 19:30:16 · 825 阅读 · 0 评论 -
递归递推练习―M―数值分解
Description 对一个自然数N ( 1 Input 输入数据有多组,每组占一行,每行包含一个自然数N(1 Output 对每组输入,输出有2行。第一行是N分解出的所有数字,以空格分隔,最后一个数字后也有空格;第二行是N分解出的所有数字的个数、乘积。 Sample Input 20 24 28 Sample Output 3 3 3 3 3 3 2 7 1458原创 2017-04-05 23:02:36 · 247 阅读 · 0 评论