打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学中枢前的准备理论之二
2.2 如何设计递归算法
  1.确定递归公式
  2.确定边界(终了)条件
  练习:
  用递归的方法完成下列问题
  1.求数组中的最大数
  2.1+2+3+...+n
  3.求n个整数的积
  4.求n个整数的平均值
  5.求n个自然数的最大公约数与最小公倍数
  6.有一对雌雄兔,每两个月就繁殖雌雄各一对兔子.问n个月后共有多少对兔子?
  7.已知:数列1,1,2,4,7,13,24,44,...求数列的第 n项.
  2.3典型例题
  例3梵塔问题
  已知有三根针分别用1,2,3表示,在一号针中从小放n个盘子,现要求把所有的盘子
  从1针全部移到3针,移动规则是:使用2针作为过度针,每次只移动一块盘子,且每根针上
  不能出现大盘压小盘.找出移动次数最小的方案.
  程序如下:
  program fanta;
  var
  n:integer;
  procedure move(n,a,b,c:integer);
  begin
  if n=1 then writeln(a,'--->',c)
  else begin
  move(n-1,a,c,b);
  writeln(a,'--->',c);
  move(n-1,b,a,c);
  end;
  end;
  begin
  write('Enter n=');
  read(n);
  move(n,1,2,3);
  end.
  例4快速排序
  快速排序的思想是:先从数据序列中选一个元素,并将序列中所有比该元素小的元素都放到它的右边或左边,再对左右两边分别用同样的方法处之直到每一个待处理的序列的长度为1,处理结束.
  程序如下:
  program kspv;
  const n=7;
  type
  arr=array[1..n] of int
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数据结构系列8
Java 递归实现汉诺塔问题
0004算法笔记
关于C++的递归(以汉诺塔为例)
汉诺塔问题递归算法分析
Byte数组与String类型的转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服