Задача 1.Последовательность. Последовательность 1,0,0,1,0,1,1,0,0,1,1,0,1,0...строится...

0 голосов
40 просмотров

Задача 1.Последовательность. Последовательность 1,0,0,1,0,1,1,0,0,1,1,0,1,0...строится так первый ее элемент равен 1, остальные получаются из элементов с меньшими номерами с помощью операции отрицания
1.если Х=0
0.если Х=1
Второй элемент равен отрицанию первого,т.е.0, третий и четвертый равны отрицанию первого и второго;элементы с пятого по восьмой равны отрицаниям элементов 1-4 и тд
НЕОБХОДИМО составить программу, вычислявшую N-й член описанной последовательности(1<N<1024). Вывести на экран элемент с номером N и ближайшие два сосоведа


Информатика (66 баллов) | 40 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  i, j, k, n: integer;
  m: array[1..1023] of byte;

begin
  Write('Введите натуральное число: ');
  Readln(n);
  k := 1;
  m[1] := 1;
  j := 2;
  while j <= n do<br>  begin
    for i := 1 to k do
    begin
      if m[i] = 1 then m[j] := 0 else m[j] := 1;
      j := j + 1
    end;
    k := k * 2
  end;
 
  Writeln('Отладочная выдача всей последовательности');
  for i := 1 to n do Write(m[i]);
  Writeln;
 
  Write(n, '-й член последовательности равен ', m[n]);
  Writeln(', два предыдущих равны ', m[n - 2], ' и ', m[n - 1])
end.

Тестовое решение:

Введите натуральное число: 50
Отладочная выдача всей последовательности
10010110011010010110100110010110011010011001011010
50-й член последовательности равен 0, два предыдущих равны 0 и 1

(142k баллов)