VladimirBorisovich
?>

Некий исполнитель может оперировать только с неотрицательными числами. Если в процессе должно получиться отрицательное число, то он прекращает работу. Он выполняет две команды: «прибавь 3» (увеличивает число на 3), «вычти 2» (уменьшает число на 2 Программа для исполнителя — это последовательность номеров команд. Сколько чисел, которые могут получиться из числа 1 после выполнения последовательности из 2020 команд?

Информатика

Ответы

ddavydov1116

2020

Объяснение:

Так как при прибавлении трёх и вычитании двух результатом прибавляется всего 1, из числа 1 до числа 2020 возможно получить 2020 чисел.

Kochetova92
1) Допустим, бумагу мы сложим в бак 3. Это будет 83 + 58 = 141.
Тогда в бак 2 надо сложить стекло или жесть.

1) а) Допустим, мы в бак 2 сложили стекло. Это будет 52 + 85 = 137.
Тогда в бак 1 кладем жесть. Это будет 95 + 75 = 170.
Всего 141 + 137 + 170 = 448 перемещений.

1) б) Допустим, мы в бак 2 сложили жесть. Это будет 64 + 75 = 139.
Тогда в бак 1 кладем стекло. Это будет 98 + 85 = 183.
Всего 141 + 139 + 183 = 463 > 448.

2) Допустим, бумагу мы сложили в бак 2. Это опять 83 + 58 = 141.
2) а) Кладем в бак 3 стекло. Это будет 98 + 52 = 150.
Тогда в бак 1 кладем жесть. Это будет 95 + 75 = 170.
Всего 141 + 150 + 170 = 461 > 448.

2) б) Кладем стекло в бак 1. Это будет 98 + 85 = 183.
Тогда в бак 3 кладем жесть. 64 + 95 = 159
Всего 141 + 183 + 159 = 483 > 448.

3) Положим бумагу в бак 1. Это будет 83 + 83 = 166.
3) а) Положим стекло в бак 2. Это будет 52 + 85 = 137.
Тогда жесть пойдет в бак 3. 64 + 95 = 159.
Всего 166 + 137 + 159 = 465 > 448.

3) б) Положим стекло в бак 3. Это будет 52 + 98 = 150.
Тогда жесть пойдет в бак 2. Это будет 64 + 75 = 139.
Всего 166 + 150 + 139 = 455 > 448.

Я рассмотрел все 6 вариантов разложить 3 мусора по 3 бакам.
ответ: минимальное количество перемещений равно 448.
Никита
// PascalABC.NET 3.1, сборка 1179 от 29.02.2016
procedure GetProdNeg(a:array of integer; var p:real);
// произведение отрицательных элементов
begin
  p:=a.Where(x->x<0).Aggregate(1.0,(p,e)->p*e)
end;

function IsPrime(n:integer):boolean:=
  Range(2,Round(sqrt(n))).All(i->n mod i<>0);

procedure ArrPrime(n:integer; var a:array of integer);
// массив простых чисел не больших n
begin
  a:=Range(2,n).Where(i->IsPrime(i)).ToArray
end;

begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-50,50); a.Println;
  var r:real;
  GetProdNeg(a,r);
  Writeln('Произведение ',r);
  n:=ReadInteger('n=');
  var b:array of integer;
  ArrPrime(n,b);
  b.Println
end.

Тестовое решение:
n= 15
27 -7 -36 40 -15 -21 -47 -28 -12 45 3 -38 -15 1 -39
Произведение 27866837980800
n= 300
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Некий исполнитель может оперировать только с неотрицательными числами. Если в процессе должно получиться отрицательное число, то он прекращает работу. Он выполняет две команды: «прибавь 3» (увеличивает число на 3), «вычти 2» (уменьшает число на 2 Программа для исполнителя — это последовательность номеров команд. Сколько чисел, которые могут получиться из числа 1 после выполнения последовательности из 2020 команд?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Svetlana1335
Tipan77
ghjcnjtyjn64
Светлана
manager-3
semenovakotya577
kovansckaya201313
Marinanagornyak
bb495
lebedev815
horina12
Korneeva1856
Rafigovich1267
dimari81
михаил