欢迎来到天天文库
浏览记录
ID:55952313
大小:18.00 KB
页数:2页
时间:2020-06-18
《FPS算法(递归 递推).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、递归算法一、某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。二、输入a,b,c三个不同的数,将它们按由小到大的顺序输出。三、编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:剪刀剪布,石头砸剪刀,布包石头。游戏者分别把自己的选择输入,计算给出结果。参考程序一、varmoneya:integer;moneyb:real;begin readln(moneya); ifmoneya<=
2、50thenmoneyb:=moneya elseifmoneya<=100thenmoneyb:=50+(moneya-50)*0.9 elsemoneyb:=50+45+(moneya-100)*0.8; writeln(moneyb:0:2); readln;end. 二、vara:array[0..3]oflongint;i,j:byte;begin read(a[1],a[2],a[3]); fori:=1to2do forj:=i+1to3do ifa[i]>a[j]the
3、nbegin a[0]:=a[i];a[i]:=a[j];a[j]:=a[0]; end; write(a[1],'',a[2],'',a[3]); readln;end. 三、constch1='S';ch2='R';ch3='P';vars:string[2];winner:byte;b:boolean;begin b:=true; readln(s); cases[1]of ch1:cases[2]of ch1:b:=false; ch2:winner:=2;
4、 ch3:winner:=1; end; ch2:cases[2]of ch1:winner:=1; ch2:b:=false; ch3:winner:=2; end; ch3:cases[2]of ch1:winner:=2; ch2:winner:=1; ch3:b:=false; end; end; ifbthenwriteln('第',winner,'个人赢了') elsewriteln('没有人赢');end. 递推算法递推算法
5、是一种用若干步可重复的简单运算(规律)来描述复杂问题的方法。[例1] 植树节那天,有五位参加了植树活动,他们完成植树的棵数都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;…如此,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树?解:设第一位同学植树的棵数为a1,欲求a1,需从第五位同学植树的棵数a5入手,根据“多两棵”这个规律,按照一定顺序逐步进行推算: ①a5=10; ②a4=
6、a5+2=12; ③a3=a4+2=14; ④a2=a3+2=16; ⑤a1=a2+2=18;参考程序: ProgramExam1; Vari,a:byte; begin a:=10; {以第五位同学的棵数为递推的起始值} fori:=1to4do {还有4人,递推计算4次} a:=a+2; {递推运算规律} writeln(’TheNumis’, a); r
7、eadln end.本程序的递推运算可用如下图示描述: 递推算法以初始{起点}值为基础,用相同的运算规律,逐次重复运算,直至运算结束。这种从“起点”重复相同的方法直至到达一定“边界”,犹如单向运动,用循环可以实现。递推的本质是按规律逐次推出(计算)下一步的结果。
此文档下载收益归作者所有