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

Исполнитель перемещается вдоль ленты, состоящей из 10 ячеек. Ячейка может быть пустой(0) или заполненной (1).
Система команд исполнителя:
- вправо – переместиться вправо на 1 ячейку;
- влево – переместиться влево на 1 ячейку;
- 1 – поместить в ячейку 1;
- 0 – поместить в ячейку 0;
- повтори N [команды] – N раз повторить команды, записанные в скобках;
- если 1 – если ячейка заполнена, то вправо, иначе 1;
- стоп - прекращение действий.
Исходное состояние ленты:

Исполнитель находится в крайней левой ячейке.
Определите состояние ленты после выполнения программы:
повтори 5 [если 1; вправо]
стоп
(ответ запишите в виде последовательности из десяти нулей и един

👇
Открыть все ответы
Ответ:
1Айжан11
1Айжан11
12.07.2020

#include <iostream>

typedef long long   ll;

using namespace std;

bool ll_is_valid(ll t, ll N, ll x, ll y)

{

return  t / x + (t - x) / y >= N;

}

ll f(ll N, ll x, ll y)

{

   ll R = 1;

   while (!ll_is_valid(R,N,x,y)) R *= 2;

ll L = R / 2;

while(R - L > 1)

{

 ll M   =   (L + R) / 2;

 

 if (!ll_is_valid(M,N,x,y)) {L = M;}

 else {R = M;}

}

return  R;

}

int  main()

{

ll N,x,y;

cin >> N >> x >> y;

if(x > y) swap( x, y );  

cout << f(N, x, y) <<  std::endl;

}

4,4(89 оценок)
Ответ:
CatolizatoRRR
CatolizatoRRR
12.07.2020

var

 FD: text;

 y, step, first, last: real;

begin

 write('Введите начальное значение, конечное значение и шаг:');

 read(first, last, step);

 assign(FD, 'tabl.txt');

 rewrite(FD);

 writeln(FD, 'x':4, 'f(x)':10);

 while (first <= last) do

 begin

   if (first.Between(0.41, 0.58)) then  

     writeln(FD, first:4:2, 'infinity':10)

   else  

   begin

     y := (2 * first + 1) / (2 * first - 1);

     writeln(FD, first:4:2, y:10:4);

   end;

   first := first + step;

 end;

 close(FD);

end.

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