您的目标是计算Fibonacci级数从第n项到第m项的和(包括这两个项)。
/ * %或数学上的它们。#1
0 5
series : 1 1 2 3 5 8
sum : 20
#2
2 5
series : 2 3 5 8
sum : 18祝好运:]
发布于 2014-03-13 05:02:58
fib(n)=n<2?1:fib(n-1)+fib(n-2)
sumfib(n,m)=sum([fib(i) for i=n:m])产出实例:
julia> sumfib(0,5) # 1 1 2 3 5 8
20
julia> sumfib(2,4) # 2 3 5
10
julia> sumfib(2,5) # 2 3 5 8
18编辑:修改成适合问题的斐波纳契惯例。
发布于 2014-03-13 08:44:31
用Fibonacci序列从索引0开始,根据当前的惯例值为0的J中的一个解。斜杠/与J.
(;+/)@:(+/@(!|.)@i."0)@([+i.@>:@-~)例如:
3 (;+/)@:(+/@(!|.)@i."0)@([+i.@>:@-~) 6
┌───────┬──┐
│2 3 5 8│18│
└───────┴──┘发布于 2014-03-13 09:36:01
uses
System.SysUtils,idglobal;
var
i,n,m,ires:integer;
a:TArray<integer>;
res:string;
begin
ires:=0;
readln(n,m);
SetLength(a,m+1);
for i:=0to m+1 do
a[i]:=iif(i<2,1,a[i-1]+a[i-2]);
for i:=n to m do
begin
write(Format('%d ',[a[i]]));
inc(ires,a[i]);
end;
WriteLn('|'+IntToStr(ires));
end.输入:0 5
输出:1 1 2 3 5 8 | 20
输入:1 20
输出:1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 | 28655
https://codegolf.stackexchange.com/questions/24012
复制相似问题