Найти член последовательности - Free Pascal (581)

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста в задаче: Каждый член последовательности десятичных цифр d1, d2, d3..., начиная с четвёртого, равен последней цифре суммы трёх предыдущих. По заданным d1, d2, d3 найти N-й член последовательности. Ограничения: 1 <= N <= 1015. Входные данные В первой строке находятся цифры d1, d2, d3, разделённые пробелами, во второй - число N. Выходные данные Вывести одну цифру - dN. Вот что нарешали, но ничего не выводит почему-то.
Листинг программы
  1. uses crt;
  2. var a,b,c,d,p,a1,b1,c1,n,i,k:integer;
  3. begin
  4. read (a,b,c);
  5. read (p);
  6. a1:=a; b1:=b; c1:=c;
  7. d:=0;
  8. while (a<>b) or (b<>c) or (c<>d) do begin
  9. a1:=b1;
  10. b1:=c1;
  11. c1:=d;
  12. p:=p+1;
  13. end;
  14. for i:=4 to (k mod p) do
  15. begin
  16. d:=(a+b+c)mod 10;
  17. a:=b;
  18. b:=c;
  19. c:=d;
  20. end;
  21. if k=1 then d:=a else begin
  22. if k=2 then d:=b else begin
  23. if k=3 then d:=c;
  24. end;
  25. end;
  26. write (d);
  27.  
  28. end.

Решение задачи: «Найти член последовательности»

textual
Листинг программы
  1. var
  2.   n: Int64;
  3.   a, b, c, d, i: Integer;
  4. begin
  5.   ReadLn(a,b,c); ReadLn(n);
  6.   n:=n mod 124;
  7.   case n of
  8.     0: n:=124;
  9.     1: d:=a;
  10.     2: d:=b;
  11.     3: d:=c;
  12.   end;  
  13.   for i:=4 to n do begin
  14.     d:=(a+b+c) mod 10;
  15.     a:=b; b:=c; c:=d;
  16.   end;
  17.   WriteLn(d);
  18. end.

Объяснение кода листинга программы

В этом коде задача состоит в том, чтобы найти член последовательности чисел, заданной в виде трех строк, используя номер этого члена в качестве целого числа от 0 до 123. Код начинается с чтения трех строк чисел и числа n с помощью функции ReadLn. Затем число n приводится к модулю 124 с помощью операции n mod 124. Это делается для того, чтобы получить значение от 0 до 123. Далее используется конструкция case для определения, какому числу соответствует полученное значение n. Если n равно 0, то n присваивается значение 124. Если n равно 1, то d присваивается значение a. Если n равно 2, то d присваивается значение b. Если n равно 3, то d присваивается значение c. Это делается для того, чтобы установить начальное значение d. Затем следует цикл for, который начинается с i=4 и продолжается до n. Внутри цикла d вычисляется как сумма a, b и c, взятая по модулю 10. Затем значения a, b и c обновляются, чтобы соответствовать следующему члену последовательности. Наконец, значение d выводится на экран с помощью функции WriteLn.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы