6. На вход программы поступает натуральное число N, не превышающее 109. Требуется найти и вывести наибольшую чётную цифру в десятичной записи этого числа или вывести «NO», если таких цифр нет. К сожалению, приведённая ниже программа неправильная. n = int(input())
t = 0
m = t
while n > 1:
d = n % 10
if d % 2 == 0 or d > m:
m = m + d
n = n // 10
if m == t:
print("NO")
else:
print(m)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 132.
2. Какое наибольшее число может быть выведено при вводе трёхзначного числа? Сколько существует таких чисел N, при вводе которого программа выведет такой ответ?
3. Найдите допущенные программистом ошибки и исправьте их.
7. Дан массив, содержащий 2014 положительных целых чисел. Напишите на одном из языков программирования программу, которая находит в этом массиве количество локальных минимумов. Локальным минимумом называется элемент массива, который меньше всех своих соседей. Например, в массиве из 6 элементов, содержащем числа 4, 6, 12, 7, 3, 8, есть два локальных минимума: это элементы, равные 4 и 3. Программа должна вывести общее количество подходящих элементов, значения элементов выводить не нужно. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
# допускается также использовать три целочисленные переменные i, j, k
a = []
n = 2014
for i in range(0, n):
a.append(int(input()))
...
8. Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 3 и оканчивающихся на 2. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: количество чисел, кратных 3 и оканчивающихся на 2.
const
handsfree = true;
var
a: array[1..100, 1..100] of real;
max, min: real;
sum, product: real;
i, j, m, n, k: integer;
begin
{ввод матрицы}
if handsfree then begin
n := random(20) + 2;
m := random(20) + 2;
end
else begin
write('n, m =');
readln(n, m);
end;
writeln('Данные матрицы:');
for i := 1 to m do
begin
for j := 1 to n do
if handsfree then begin
a[i, j] := random(100) - 50;
write(a[i, j]:4, ' ')
end
else
read(a[i, j]);
writeln;
end;
{минимумы и максимумы}
max := a[1, 1];
min := a[1, 1];
for i := 1 to m do
for j := 1 to n do
begin
if max < a[i, j] then max := a[i, j];
if min > a[i, j] then min := a[i, j];
end;
writeln('max = ', max);
writeln('min = ', min);
{сумма, произведение, пр. агригаты}
sum := 0;
product := 1;
for i := 1 to m do
for j := 1 to n do
if a[i, j] <> 0 then {если нужен фильтр}
begin
sum := sum + a[i, j];
product := product * a[i, j];
k := k + 1;
end;
writeln('sum = ', sum);
writeln('product = ', product);
writeln('average = ', sum / (n * m));
writeln('average (selected) = ', sum / k);
end.
Ожидание 2 часа, осталось 4,5 часов
Активен 1 заражённый
1 шаг:
Послано на 15, заражено 15*0.2+1=4(3 в ожидании на 2 часа), осталось 3,5 часов
2 шаг
Послано на 15, заражено 15*0.2+4=7(3 в ожидании на 1 час, 3 в ожидании на 2 часа), осталось 2,5 часов
Активны 4 заражённых
3 шаг
Послано на 15*4=60, заражено 60*0.2+7=19(12 в ожидании на 2 часа, 3 в ожидании на 1 час), осталось 1,5 часов
Активны 7 заражённых
4 шаг
Послано на 15*7=105, заражено 105*0.2+19=40, осталось 0.5 часов
За пол часа рассылок не произойдёт.
ответ: 40