【应用】斐波拉契数列及一个精简思路
斐波拉契数列,即1,1,2,3,5,8,13,21,34……要求第n项的数值,(编程初学者,代码可能不太好。)
代码:
a := 0
b := 1
readln(n);
for i := 1 to n do
begin
b := b+a;
a := b-a;
end;
writeln(a);
ES方法如下:
准备:
n→X
0→A
1→B
开始:
XP1-1→X:A+B→B:B-A→A
答案在变量A中。
总结:这里将判断语句和赋值语句结合到了一起:XP1-1→X
判断X是否大于0时,也使X=X-1,省略了1/4的等号。 n-1->y
1->x
1->a
Rec(Pol(a-x,y-1),y)+0/y+a->a 2# hcz
刚才贴子没发完,不好意思哈。 嗯,刚看到
哈哈 。。我火星了。。。。 n→X
1→A
1→B
Pol(X-1,0)*0+0/(X-2)+A+B->A:Pol(X-1,0)*0+0/(X-2)+A+B->B 7# kkoosky
好繁琐,等号应该很少么? 7楼的方法还是麻烦了,一个式子就可以完美解决的。
不过按等号次数已经最精简了(每个等号都是一个有效输出),式子也在100字符之内,一样ok的
另,其实不用ES编程,只要用5L提供的代数式同样可以搞定 1 -> x
1 -> y
=====================
x + y -> x:x + y -> y 没多,都是一个等号一个结果
页:
[1]