Определим “календарные” числа Фибоначчи таким образом: первые два из них задаются текущим учебным годом (т.е. в данный момент это 2013 и 2014), а последующие составляются как обычно: каждое последующее число равно сумме двух предыдущих чисел. В итоге получаем последовательность 2013, 2014, 4027, 6041… Какое число стоит в данной последовательности на 2014 месте и чему равна сумма цифр этого числа?
сделать а паскале
Answers & Comments
VAR
a,b,c: String;
i, s: LongInt;
Procedure Sum(var a, b: String);
Var i, p, c1,c2: LongInt;
Begin
while (Length(a) < Length(b)) do a := '0' + a;
while (Length(b) < Length(a)) do b := '0' + b;
p := 0;
for i := Length(a) downto 1 do begin
c1 := Ord(a[i]) - 48;
c2 := Ord(b[i]) - 48;
a[i] := Chr(48 + (c1 + c2 + p)mod 10);
p := (c1 + c2 + p) div 10;
end;
if (p > 0) then a := Chr(p + 48) + a;
End;
BEGIN
a:= '2013';
b:= '2014';
for i := 3 to 2014 do begin
Sum(a, b);
c := a; a := b; b := c;
end;
Writeln(c);
s := 0;
for i := 1 to Length(c) do
s := s + Ord(c[i]) - 48;
Writeln('Сумма цифр числа = ', s);
END.