トップページに戻る
次のProblemへ
前のProblemへ
Problem2 フィボナッチ数列の偶数の項の総和
フィボナッチ数列の項は前の2つの項の和である。
最初の2項を1,2とすれば、最初の10項は以下の通りである。
1,2,3,5,8,13,21,34,55,89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。
SQL
declare
type SuuretuArrDef is table of pls_Integer index by binary_integer;
SuuretuArr SuuretuArrDef;
cnt pls_Integer;
SumVal pls_Integer := 0;
begin
Loop
cnt := SuuretuArr.Count;
if cnt > 0 then
if SuuretuArr(cnt) > 4000000 then
exit;
end if;
end if;
if cnt = 0 then
SuuretuArr(1) := 1;
elsif cnt = 1 then
SuuretuArr(2) := 2;
else
SuuretuArr(cnt+1) := SuuretuArr(cnt)+SuuretuArr(cnt-1);
end if;
cnt := SuuretuArr.Count;
if mod(SuuretuArr(cnt),2) = 0 then
SumVal := SumVal + SuuretuArr(cnt);
end if;
end Loop;
DBMS_Output.Put_Line('合計=' || to_char(SumVal));
end;
/
実行結果
合計=4613732
解説
C#のListジェネリックの変数名の末尾語はList
C#のDictionaryジェネリックの変数名の末尾語はDict
PL/SQLの結合配列の変数名の末尾語はArr
としたい。
C#での解