В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
ника2762
ника2762
01.10.2021 22:48 •  Информатика

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

Показать ответ
Ответ:
Nodar2004
Nodar2004
02.07.2020 13:18
// Задача решается длинной арифметикой
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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота