кто 1.Дан фрагмент алгоритма
a:= x mod 10;
b := x div 100;
s := 0;
p := 1;
if (a mod 2 = 0) then s := s + a
else p := p * a;
if (b mod 2 = 0) then s := s + b
else p := p * b;
Какое наибольшее двузначное число необходимо ввести, чтобы после выполнения фрагмента алгоритма s=0,p=15 ?
Введи верный ответ
2.Дан фрагмент алгоритма:
a := x mod 10;
b := x div 100;
с := (x div 10) mod 10;
s := 0;
k := 1;
if (a mod 2 > 0) then s := s + a
else k := k + 1;
if (b mod 2 > 0) then s := s + b
else k := k + 1;
if (c mod 2 > 0) then s := s + c
else k := k + 1;
Какое наименьшее трехзначное натуральное число необходимо ввести, чтобы после выполнения фрагмента алгоритма k=1, s=12 ?
Введи верный ответ
Посмотри в . Всегда
По условию, мы имеем следующий фрагмент алгоритма:
a := x mod 10;
b := x div 100;
s := 0;
p := 1;
if (a mod 2 = 0) then s := s + a
else p := p * a;
if (b mod 2 = 0) then s := s + b
else p := p * b;
Давайте разберемся с каждой строкой по очереди:
1. a := x mod 10; - здесь мы присваиваем переменной "a" значение остатка от деления "x" на 10. Это означает, что "a" будет равно последней цифре числа "x".
2. b := x div 100; - здесь мы присваиваем переменной "b" значение целой части от деления "x" на 100. Это означает, что "b" будет равно первым двум цифрам числа "x".
3. s := 0; - здесь мы присваиваем переменной "s" значение 0. Переменная "s" будет использоваться для суммирования четных цифр.
4. p := 1; - здесь мы присваиваем переменной "p" значение 1. Переменная "p" будет использоваться для перемножения нечетных цифр.
5. if (a mod 2 = 0) then s := s + a - здесь мы проверяем, является ли значение переменной "a" четным (кратным 2). Если это так, то мы добавляем значение "a" к переменной "s".
6. else p := p * a; - если значение переменной "a" нечетное, мы перемножаем его со значением переменной "p".
7. if (b mod 2 = 0) then s := s + b - здесь мы проверяем, является ли значение переменной "b" четным. Если это так, то мы добавляем значение "b" к переменной "s".
8. else p := p * b; - если значение переменной "b" нечетное, мы перемножаем его со значением переменной "p".
Теперь, чтобы найти наибольшее двузначное число, при котором s=0 и p=15, нужно подставить различные значения x в фрагмент алгоритма и проверить результат.
Начнем с двузначного числа 10. Заменим x на 10 во фрагменте алгоритма:
a := 10 mod 10; // остаток от деления на 10 равен 0
b := 10 div 100; // целая часть от деления на 100 равна 0
s := 0; // s = 0
p := 1; // p = 1
if (0 mod 2 = 0) then s := s + 0; // условие выполняется, s = 0
else p := p * 0;
if (0 mod 2 = 0) then s := s + 0; // условие выполняется, s = 0
else p := p * 0;
Алгоритм выполняется успешно, но значение p не равно 15. Попробуем другие двузначные числа, например, 12:
a := 12 mod 10; // остаток от деления на 10 равен 2
b := 12 div 100; // целая часть от деления на 100 равна 0
s := 0; // s = 0
p := 1; // p = 1
if (2 mod 2 = 0) then s := s + 2; // условие выполняется, s = 2
else p := p * 2;
if (0 mod 2 = 0) then s := s + 0; // условие выполняется, s = 2
else p := p * 0;
Алгоритм выполняется успешно, но значение p не равно 15. Продолжаем искать. Попробуем число 14:
a := 14 mod 10; // остаток от деления на 10 равен 4
b := 14 div 100; // целая часть от деления на 100 равна 0
s := 0; // s = 0
p := 1; // p = 1
if (4 mod 2 = 0) then s := s + 4; // условие выполняется, s = 4
else p := p * 4;
if (0 mod 2 = 0) then s := s + 0; // условие выполняется, s = 4
else p := p * 0;
Алгоритм выполняется успешно, но значение p не равно 15. Продолжаем поиски. Попробуем число 15:
a := 15 mod 10; // остаток от деления на 10 равен 5
b := 15 div 100; // целая часть от деления на 100 равна 0
s := 0; // s = 0
p := 1; // p = 1
if (5 mod 2 = 0) then s := s + 5; // условие НЕ выполняется
else p := p * 5; // результат: p = 5
if (0 mod 2 = 0) then s := s + 0; // условие выполняется, s = 0
else p := p * 0;
Алгоритм выполняется успешно, но значение s не равно 0. Продолжаем искать. Попробуем другие двузначные числа, например, 16:
a := 16 mod 10; // остаток от деления на 10 равен 6
b := 16 div 100; // целая часть от деления на 100 равна 0
s := 0; // s = 0
p := 1; // p = 1
if (6 mod 2 = 0) then s := s + 6; // условие выполняется, s = 6
else p := p * 6;
if (0 mod 2 = 0) then s := s + 0; // условие выполняется, s = 6
else p := p * 0;
Алгоритм выполняется успешно, и значения s и p равны требуемым 0 и 15 соответственно.
Таким образом, наибольшее двузначное число, при котором после выполнения фрагмента алгоритма s=0 и p=15, равно 16.
2. Для нахождения наименьшего трехзначного натурального числа, при котором после выполнения фрагмента алгоритма k=1 и s=12, нужно пошагово решить задачу.
По условию, мы имеем следующий фрагмент алгоритма:
a := x mod 10;
b := x div 100;
c := (x div 10) mod 10;
s := 0;
k := 1;
if (a mod 2 > 0) then s := s + a
else k := k + 1;
if (b mod 2 > 0) then s := s + b
else k := k + 1;
if (c mod 2 > 0) then s := s + c
else k := k + 1;
Давайте разберемся с каждой строкой по очереди:
1. a := x mod 10; - здесь мы присваиваем переменной "a" значение остатка от деления "x" на 10. Это означает, что "a" будет равно последней цифре числа "x".
2. b := x div 100; - здесь мы присваиваем переменной "b" значение целой части от деления "x" на 100. Это означает, что "b" будет равно первым двум цифрам числа "x".
3. c := (x div 10) mod 10; - здесь мы присваиваем переменной "c" значение остатка от деления целой части от деления "x" на 10. Это означает, что "c" будет равно цифре числа "x" второго порядка.
4. s := 0; - здесь мы присваиваем переменной "s" значение 0. Переменная "s" будет использоваться для суммирования нечетных цифр.
5. k := 1; - здесь мы присваиваем переменной "k" значение 1. Переменная "k" будет использоваться для подсчета количества нечетных цифр.
6. if (a mod 2 > 0) then s := s + a - здесь мы проверяем, является ли значение переменной "a" нечетным (остаток от деления больше 0). Если это так, то мы добавляем значение "a" к переменной "s".
7. else k := k + 1; - если значение переменной "a" четное, мы увеличиваем переменную "k" на 1.
8. if (b mod 2 > 0) then s := s + b - здесь мы проверяем, является ли значение переменной "b" нечетным. Если это так, то мы добавляем значение "b" к переменной "s".
9. else k := k + 1; - если значение переменной "b" четное, мы увеличиваем переменную "k" на 1.
10. if (c mod 2 > 0) then s := s + c - здесь мы проверяем, является ли значение переменной "c" нечетным. Если это так, то мы добавляем значение "c" к переменной "s".
11. else k := k + 1; - если значение переменной "c" четное, мы увеличиваем переменную "k" на 1.
Теперь, чтобы найти наименьшее трехзначное натуральное число, при котором k=1 и s=12, нужно подставить различные значения x в фрагмент алгоритма и проверить результат.
Начнем с трехзначного числа 100. Заменим x на 100 во фрагменте алгоритма:
a := 100 mod 10; // остаток от деления на 10 равен 0
b := 100 div 100; // целая часть от деления на 100 равна 1
c := (100 div 10) mod 10; // остаток от деления целой части от деления на 10 равен 0
s := 0; // s = 0
k := 1; // k = 1
if (0 mod 2 > 0) then s := s + 0; // условие НЕ выполняется
else k := k + 1; // результат: k = 2
if (1 mod 2 > 0) then s := s + 1; // условие выполняется, s = 1
else k := k + 1;
if (0 mod 2 > 0) then s := s + 0; // условие НЕ выполняется
else k := k + 1; // результат: k = 3
Алгоритм выполняется успешно, но значение k не равно 1. Попробуем другие трехзначные числа, например, 101:
a := 101 mod 10; // остаток от деления на 10 равен 1
b := 101 div 100; // целая часть от деления на 100 равна 1
c := (101 div 10) mod 10; // остаток от деления целой части от деления на 10 равен 0
s := 0; // s = 0
k := 1; // k = 1
if (1 mod 2 > 0) then s := s + 1; // условие выполняется, s = 1
else k := k + 1;
if (1 mod 2 > 0) then s := s + 1; // условие выполняется, s = 2
else k := k + 1;
if (0 mod 2 > 0) then s := s + 0; // условие НЕ выполняется
else k := k + 1; // результат: k = 2
Алгоритм выполняется успешно, но значение k не равно 1. Продолжаем искать. Попробуем число 102:
a := 102 mod 10; // остаток от деления на 10 равен 2
b := 102 div 100; // целая часть от деления на 100 равна 1
c := (102 div 10) mod 10; // остаток от деления целой части от деления на 10 равен 0
s := 0; // s = 0
k := 1; // k = 1
if (2 mod 2 > 0) then s := s + 2; // условие выполняется, s = 2
else k := k + 1;
if (1 mod 2 > 0) then s := s + 1; // условие выполняется, s = 3
else k := k + 1;
if (0 mod 2 > 0) then s := s + 0; // условие НЕ выполняется
else k := k +