您的位置:首页 > 其它

Pascal数组递推

2015-08-23 15:54 141 查看
有一个养鸭专业户,赶了一大群鸭子出去卖。他每经过一个村庄,卖出所赶鸭子的一半再多一只,这样他经过七个村庄后,还剩下两只鸭子,编程打印输出他每经过一个村庄后卖出多少只鸭子?剩下多少只鸭子?

var
a:array[0..7] of longint;
i:longint;
begin
	a[7] := 2;
	for i := 7 downto 1 do a[i-1] := 2*(a[i]+1);
	for i := 1 to 7 do writeln('No.',i,' : ',a[i-1]-a[i]:5,a[i]:5);
end.


我点评一下,数组递推我估计在写法上应该难度不大,唯独一个可能比较难想的是,卖出的数量是卖之前数量的一半多一个,算了,列个表格

卖之前卖出卖之后
n1/2*(n)+11/2*(n)-1
2*n+1管他那!n
.........
把n代换为2*n+1,卖之后的数量就会变成n,这一步,估计数学底子不好的同学要想不通了~

所以卖之前的数量是卖之后数量的2*n+1,这就是我们数组递推的依据!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: