М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
danilaandriyanov
danilaandriyanov
24.11.2021 00:25 •  Информатика

Решите задание по информатике, все прикрепил ниже
С решением


Решите задание по информатике, все прикрепил ниже С решением
Решите задание по информатике, все прикрепил ниже С решением

👇
Ответ:
mariyapopova21
mariyapopova21
24.11.2021
ответ:

22888

Объяснение:

Проанализируем алгоритм:

Программа содержит цикл с предусловием: «нашлось (2222)» или «нашлось (8888)». Значит, тело цикла будет выполняться, если окажется истинным хотя бы одна из них, в противном случае программа останавливается.

Рассмотрим тело цикла:

Если в строке есть подстрока 2222, то происходит ее замена на 8. Иначе (если в строке нет 2222), но есть подстрока 8888, то она заменяется на 2.

Исходная строка имеет 146 идущих подряд цифр 8 (888…8). Значит, условие цикла истинно (нашлось (8888)).

Так как в исходной строке нет подстроки 2222, то выполняется ветвь ИНАЧЕ и происходит замена подстроки 8888 на 2. Таким образом, после одного шага цикла строка будет иметь следующий вид: 2888…8 (цифр 8 теперь на 4 меньше, то есть 142).

Очевидно, после ещё трёх шагов цикла строка примет следующий вид: 2222888…8 (цифр 8 теперь ещё на 12 (4*3) меньше, то есть 130).

На следующем шаге при проверке условия «нашлось (2222)» получаем истину, поэтому выполняется ветвь ЕСЛИ и подстрока 2222 заменяется на 8 (цифр 8 теперь 131).

Не трудно заметить, что за 5 шагов в строке шестнадцать цифр 8 заменяются на одну 8 (т. е. удаляется 15 (146-131) восьмерок).

Выясним, сколько раз в исходной строке встретится по 15 восьмерок и какой будет строка после проведенных преобразований:

146 ÷ 15 = 9 (остаток 11).

Значит, строка имеет следующий вид: 8888 8888 888 (11 восьмерок).

В результате двух последних шагов цикла подстроки 8888 заменяются на двойки и окончательно получаем строку 22888.

4,6(15 оценок)
Открыть все ответы
Ответ:
hdjeugwcwtixuvbekz
hdjeugwcwtixuvbekz
24.11.2021
//PascalABC.NET 3.2 сборка 1318

//Вариант по формуле Бине

Var
  n,fibn:real;
  i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
  i:=0;
    while fibn<n do
      begin
        fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
        inc(i);
      end;
   writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
     end;
 end.

//В лоб

Var
  sum,n,buf,fib0,fib1:integer;
 
 function fibb(fib0,fib1:integer):integer;
  begin
    result:=fib0+fib1;
  end;

begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
   writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
    if fibb(fib0,fib1)>=n then sum:=0 else
    begin
      while fibb(fib0,fib1)<n do
        begin
         buf:=fib1;
         fib1:=fibb(fib0,fib1);
         fib0:=buf;
        end;
      sum:=fibb(fib1,fibb(fib0,fib1))-1;
   end;
   writeln(sum);
  end;
end.

Пример ввода:
12
Пример вывода:
20
4,5(20 оценок)
Ответ:
//PascalABC.NET 3.2 сборка 1318

//Вариант по формуле Бине

Var
  n,fibn:real;
  i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
  i:=0;
    while fibn<n do
      begin
        fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
        inc(i);
      end;
   writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
     end;
 end.

//В лоб

Var
  sum,n,buf,fib0,fib1:integer;
 
 function fibb(fib0,fib1:integer):integer;
  begin
    result:=fib0+fib1;
  end;

begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
   writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
    if fibb(fib0,fib1)>=n then sum:=0 else
    begin
      while fibb(fib0,fib1)<n do
        begin
         buf:=fib1;
         fib1:=fibb(fib0,fib1);
         fib0:=buf;
        end;
      sum:=fibb(fib1,fibb(fib0,fib1))-1;
   end;
   writeln(sum);
  end;
end.

Пример ввода:
12
Пример вывода:
20
4,7(76 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ