Уисполнителя четыре команды, которым присвоены номера: 1.прибавь1 2.сделай четное(*2) 3.сделай нечетное(*2+1) 4.умножь на 10 сколько существует программ, которые число 1 преобразуют в число 15? !
// pascalabc.net 3.2, сборка 1467 от 02.06.2017 // внимание! если программа не работает, обновите версию! begin var a: =arrrandom(readinteger('n=',50); a.println; var x: =a.where(x-> x.isodd).toarray; for var i: =1 to x.count-1 do begin var (j,l): =(i-1,x[i]); while (j> =0) do if x[j]> l then begin x[j+1]: =x[j]; j-=1 end else break; x[j+1]: =l end; var j: =0; for var i: =0 to x.length-1 do begin while a[j].iseven do j+=1; a[j]: =x[i]; j+=1 end; a.println; end. пример n= 15 49 10 3 44 -25 31 -18 -9 29 43 -24 -45 -19 45 -19 -45 10 -25 44 -19 -19 -18 -9 3 29 -24 31 43 45 49
vasinam
09.09.2021
Смотри, выписываешь все числа на бумагу. 1.смотришь первый шаг: максимальная сумма 2-значных чисел это 18 (9+9), минимальная 1 (1+0), то есть больше 18 . 2-ой шаг - максимальное произведение это 27 (9*3), а минимальное 0 (0*3) или 3 (1*3). 3.каждое число делишь (чертой) на 2 числа. (2 |1, 7|3, 9|4, 72|9, 12|9, 15|14, 27|18, 29|12 4.смотришь чтобы ни одно число не было больше 27, а если такое есть, то другое число должно быть меньше либо равно 18. 7|29 и 29|12 сразу зачеркиваем, так как они не подходят. далее смотришь, числа по невозрастанию должны быть, так что 4.дальше надо считать: 1-е число: 2 и 1. неподходит, так как ни одно число не подходит в диапазон умножения (оно не равно 3-м или нулю). зачеркиваем. 2-е число 7 и 3. число 7 не делится нацело на 3, возможно, что оно произошло при сложения (4 и 3 например). 3 тоже подходит (3*1) оставляем. 3-е число 9 и 4 подходит (3*3 и 2+2) 4-е число 72 и 9 мы его зачеркнули 5-е число 12 и 9 подходит (4*3 и 6+3) 6-е число 15 и 14 подходит (5*3 и 7+7) 7-е число 27 и 18 подходит прям впритык (9*3 и 9+9) 8-е число 29 и 12 мы его зачеркнули ответ: 5 чисел. возможно, тебе мой метод непонятен, так что обратись к другим источникам, или налегай на другие .