Определим “календарные” числа Фибоначчи таким образом: первые два из них задаются текущим учебным годом (т.е. в данный момент это 2013 и 2014), а последующие составляются как обычно: каждое последующее число равно сумме двух пр...

Определим “календарные” числа Фибоначчи таким образом: первые два из них задаются текущим учебным годом (т.е. в данный момент это 2013 и 2014), а последующие составляются как обычно: каждое последующее число равно сумме двух предыдущих чисел. В итоге получаем последовательность 2013, 2014, 4027, 6041… Какое число стоит в данной последовательности на 2014 месте и чему равна сумма цифр этого числа? сделать а паскале
Гость
Ответ(ы) на вопрос:
Гость
// Задача решается длинной арифметикой 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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы