Распишите подробнее. Четные числа, которые вводятся с клавиатуры? Сколько этих чисел?
------------------------------------
var i,n,c:integer;
begin
readln(n);
с:=1;
for i:=2 to n do
if i mod 2=0 then c:=c*i;
writeln('Произведение четных чисел: ',c);
readln;
end.
1. догадаться что скрывается под многоточием. вероятно, полностью этот блок выглядит так:
(x1>x2)^(x1>y1)=1
(x2>x3)^(x2>y2)=1
(x3>x4)^(x3>y3)=1
(x4>x5)^(x4>y4)=1
(x5>x6)^(x5>y5)=1
(x6>x7)^(x6>y6)=1
(x7>y7)=1
2. понять что такое "наборы значений переменных". - это просто списки значений для иксов и игриков. значит, нам сначала придётся определить эти значения, а потом посчитать количество этих "наборов".
3. логические переменные - переменные, в которых минимальное значение 0, а максимальное 1.
4. значит, подставляя разные значения в иксы и игрики, мы должны найти нужный ответ.
5. предположительно, автор вопроса придумал количество иксов и игриков беря за основу количество битов в байте...
6. ответ (ноль) на данное задание можно получить 2 способами:
1 - не долгое логическое размышление
1. результат логического умножения может быть 1, только если все множители == 1
2. данный в условии блок может быть переструктурирован как:
(
((x1>x2)^(x1>y1))^
((x2>x3)^(x2>y2))^
((x3>x4)^(x3>y3))^
((x4>x5)^(x4>y4))^
((x5>x6)^(x5>y5))^
((x6>x7)^(x6>y6))^
(x7>y7)
) = 1
3. т.е. ни при каких наборах значений это логическое равенство не может быть верным, т.е. не может быть 1, т.е. не может соответствовать сразу всем перечисленным условиям
2 - эксперементальное: написать программу
пишу на Python, потому что паскаль уже давно забыл
count = 0
def bin_values(in_int):
ret = []
b = bin(in_int)[2:]
while len(b) != 7:
b = '0' + b
for i in b:
ret.append(bool(int(i)))
return ret
for xs in range(2**7):
x1, x2, x3, x4, x5, x6, x7 = bin_values(xs)
print(xs)
print(x1, x2, x3, x4, x5, x6, x7)
for ys in range(2**7):
y1, y2, y3, y4, y5, y6, y7 = bin_values(ys)
if (
((x1 > x2) and (x1 > y1)) and
((x2 > x3) and (x2 > y2)) and
((x3 > x4) and (x3 > y3)) and
((x4 > x5) and (x4 > y4)) and
((x5 > x6) and (x5 > y5)) and
((x6 > x7) and (x6 > y6)) and
(x7 > y7)
):
count += 1
print(count)
Исходное число = 47-24 = 23
23+17 = 40
40+36 = 76
Число трехзначное? - нет
76+2587 = 2663
Ответ: 2663
Алгоритм работает, если верхние края стен расположены на одном уровне:
использовать Робот
алг
нач
нц пока справа стена
закрасить
вверх
кц
нц пока справа свободно
вправо
кц
вниз
нц пока слева свободно
влево
кц
нц пока слева стена
закрасить
вниз
кц
кон