递归递推
konghhhhh
记录自己的学习过程
展开
-
递归递推 A
A 母牛的故事 有一头母牛,第二年年初开始每年生一头小母牛,每头小母牛第四年成熟为母牛,问第n年有多少母牛。 用a【n】表示母牛数量,b【n】表示小母牛数量。易知初始状态下, a[1]=1;a[2]=1;a[3]=1; b[1]=0;b[2]=1;b[3]=1; 递推关系式为 a[i]=a[i-1]+b[i-3]; b[i]=a[i]; 代码如下: #include using原创 2017-04-10 20:18:26 · 193 阅读 · 0 评论 -
递归递推 B
B 有一张大饼,问切n刀,最多可以切成多少快。 观察数据发现这是求1+2+3+......+n的问题,公式 (1+n)n/2+1得结果。 代码如下: #include using namespace std; int main() { int n; cin>>n; coutn*(n+1)/2+1endl; return 0; }原创 2017-04-10 20:25:07 · 169 阅读 · 0 评论 -
递归递推 C
C 给定一个函数 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-04-10 20:32:10 · 217 阅读 · 0 评论 -
递归递推 D
D 汉诺塔系列 1 n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系: n=m+p+q a1>a2>...>am b1>b2>...>bp c1>c2>...>cq 计算所有会产生的系列总数。 该问题从输入输出上易看出是求3得n次原创 2017-04-10 22:10:13 · 174 阅读 · 0 评论 -
递归递推 E
E 养兔子 一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。 用f【i】记录兔子对数,则f【1】=1;f【2】=2;递推公式为f【i】=f【i-1】+f【i-2】; 代码如下: #include using namespace st原创 2017-04-10 22:15:04 · 305 阅读 · 0 评论 -
递归递推 F
F 计算组合数 计算组合数。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). 这个题比较简单,直接递归即可, 代码原创 2017-04-10 22:19:19 · 243 阅读 · 0 评论 -
递归递推 G
G 考四级座位 监考老师会按考号分配固定的座位,但唯一不变的是每两个人之间肯定至少会留下两个空座位,原因相信大家都懂得。 那么问题来了,我们现在只关注教室里的一排座位,假设每排有n个座位,小银想知道这一排至少坐一个人的前提下,一共有多少种坐法。 该问题类似于Fibonacci sequence问题,分析n个座位时,只考虑第n个有人没有,若有,则考虑剩下得n-2个;若没有,则考虑剩下的n-1个原创 2017-04-10 22:23:02 · 269 阅读 · 0 评论 -
递归递推 H (全错排列)
H 巴蜀之危 已知n封书信,每封书信都投错了烽火台,居然没有一封是对的,求有多少种情况。 这是一个全错位排列,想了好久没有想出来来做法,但是能很明显感觉出这个问题是个数学问题,一百度就出来一个 错排公式,直接就可以解了, 公式为 D(n) = (n-1) [D(n-2) + D(n-1)]; 代码如下: #include using namespace std; int main()原创 2017-04-10 22:54:20 · 326 阅读 · 0 评论 -
递归递推 I
I 蟠桃记 孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候一共有多少个桃子? 本题由于是多组数据,且每次数据不变,所以先用一个数组存储起来,节省时间,而计算过程很简单。 代码如下: #include u原创 2017-04-10 23:22:58 · 220 阅读 · 0 评论