dianapanova2004
28.08.2022 12:19

Определите значение переменной x после выполнения алгоритма


Определите значение переменной x после выполнения алгоритма

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Goldman2017
07.03.2021 04:54
Procedure ShellStr(var s: string);
{ сортирует символы строки методом Шелла }
var
  i, j, n, step: integer;
  c: char;
begin
  s := Trim(s);
  n := Length(s);
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if s[i] > s[i + step] then
        begin
          c := s[i];
          s[i] := s[i + 1];
          s[i + 1] := c
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

procedure TrimNullsLeft(var s: string);
{ Усекает левые (незначащие нули) в строке s }
var
  i, n: integer;
begin
  i := 1; n := Length(s);
  while (s[i] = '0') do i := i + 1;
  s := Copy(s, i, n - i + 1)
end;

var
  p: integer;
  s, M, N: string;
  f: text;

begin
  Assign(f, 'input.txt');
  Reset(f);
  Readln(f, s);
  Close(f);
  Assign(f, 'output.txt');
  Rewrite(f);
  s := Trim(s);
  p := Pos(' ', s);
  M := Copy(s, 1, p - 1);
  N := Copy(s, p + 1, Length(s) - p);
  s := M + N;
  ShellStr(s);
  TrimNullsLeft(s);
  Writeln(f, s);
  Close(f);
  Writeln('Программа завершила работу')
end.
0,0(0 оценок)
Ответ:
YTCoolboy55
23.12.2020 00:10
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
  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
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота