daima zuoye
正在努力的菜鸟猿
不甘平凡
展开
-
用递归求一个数组的最大值。
分析:通过两两比较求得大值。第一次是a[0]的值和后面所有值a[1]-a[9]的最大值进行比较,返回最大值。如何得到a[1]到a[9]的最大值呢?递归调用。用a[1]和后面所有值a[2]-a[9]的最大值进行比较。依次类推。0#include<stdio.h>int max(int a[],int len){ int x,y; if(len==1) return a[0]; else...原创 2018-05-10 20:09:47 · 787 阅读 · 0 评论 -
递归 幂运算
有个莲花池里起初有一只莲花,每过一天莲花的莲花的数量就会翻一倍。假设莲花永远不凋谢,30天的时候莲花池全部长满了莲花,请问第23天的莲花占莲花池的几分之几?首先定义最终终止条件f(1)=1然后定义递归公式f(n)=f(n-1)*2#include<stdio.h>int fn(int n){ int s; if(n==1) return 1; else s=fn(n-1)*2;...原创 2018-05-10 20:33:20 · 3038 阅读 · 0 评论 -
牛牛
有一个农场在第一年的时候买了一头刚出生的牛,这头牛在第四年的时候就能生一头小牛,以后每年这头年就会生一头小牛。这些小牛成长到第四年也会生小牛,以后每年同样会生一头牛,假如牛不死,如此反复。请问20年后,这个农场会有多少头牛?数列为: 1 1 1 2 3 4 6 9 13 19 28 41 60……终止条件是:f(1)=f(2)=f(3)=1递归式:f(n)=f(n-1)+...原创 2018-05-10 20:46:04 · 2169 阅读 · 0 评论 -
汉诺塔
用递归求汉诺塔问题:古代有一个梵塔,塔内有A,B,C 3个座,开始时A上有64个盘子,盘子大小不等,大的在下,小的在上,有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上,在移动过程中可以借助B座,要求编程求出移动的步骤。思路:将n个盘子从A座移到C座可以分解为以下3个步骤: (1)将A座上的n-1个盘子借助C座移到...原创 2018-05-10 21:08:44 · 170 阅读 · 0 评论