13 У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 4
2. вычти b
(b — неизвестное натуральное число)
Первая из них увеличивает число на экране в 4 раза, вторая уменьшает его на b. Известно, что программа 21122 переводит число 4 в число 28.
Определите значение b.
14
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 4
2. вычти b
(b — неизвестное натуральное число)
Первая из них увеличивает число на экране в 4 раза, вторая уменьшает его на b. Известно, что программа 12212 переводит число 3 в число 21.
Определите значение b.
15
У исполнителя Делитель две команды, которым присвоены номера:
1. раздели на 2
2. вычти 3
Первая из них уменьшает число на экране в 2 раза, вторая уменьшает его на 3. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из чиcла 76 числа 5, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 21211– это алгоритм:
вычти 3
раздели на 2
вычти 3
раздели на 2
раздели на 2,
который преобразует число 33 в 3.)
Если таких алгоритмов более одного, то запишите любой из них.
const
s: longint = 0;
var
x: longint;
t: string;
e: integer;
begin
writeln('Вводите целые числа (0 - окончание ввода) : ');
repeat
repeat
write('> ');
readln(t);
val(t, x, e);
if e <> 0 then
writeln('Ошибка! Повторите ввод. ')
until e = 0;
s += x
until x = 0;
if s = 0 then
writeln('Числа не вводились. ')
else
writeln('Сумма введённых чисел = ', s, #10);
write('Для завершения работы нажмите Enter...');
readln
end.
int main() {
// Something
int a[n][m];
// Init
// Находим максимум
int im = 0, jm = 0, max = a[0][0];
for (int i = 0 ; i < n; ++i)
for (int j = 0; j < m; ++j)
if (a[i][j] > max) {
max = a[i][j];
im = i;
jm = j;
}
// Двигаем максимум вниз
swapCollumn(a, n, m, im, n-1);
swapRow(a, n, m, jm, m-1);
}
//Премещаем 2 столбца местами
void swapCollumn(int ** a, int n, int m, int c1, int c2) {
if (c1 < 0 || c2 < 0 || c1 >= n || c2 >= n)
return;
for (int i = 0; i < m; ++i)
swap(&a[c1][i], &a[c2][i]);
}
//Перемещаем 2 строки местами
void swapRow(int ** a, int n, int m, int r1, int r2) {
if (r1 < 0 || r2 < 0 || r1 >= m || r2 >= m)
return;
for (int i = 0; i < n; ++i)
swap(&a[i][r1], &a[i][r2]);
}
void swap(int * el1, int el2) {
int t = *el1;
*el1 = *el2;
*el2 = *el1;
}