Ниже записана программа. Получив на вход число x, эта программа печатает два числа, a и b. Укажите наименьшее из чисел x, при вводе которых алгоритм печатает сначала 14, а потом 6.
ПАСКАЛЬ:
var x, a, b, c: integer;
begin
readln(x);
a := 0; b := 10;
while x>0 do begin
с := x mod 10;
a := a+c;
if c x := x div 10;
end;
writeln(a); write(b);
end.
СИ:
int x, a, b, c;
scanf("%d",&x);
a = 0; b = 10;
while (x>0) {
с = x % 10;
a = a+c;
if (c x = x / 10;
}
printf("%d",a); printf("%d",b);
ответ: 33
Объяснение: В "Ж" можно приехать из Е, К, З, В или Б, поэтому N = NЖ = NЕ + NК + N З + NВ + NБ (1)
NЕ = NБ + NК;
NК = NЗ + NИ;
NЗ = NВ + NГ + NД;
NВ = NА + NБ = 1 + 1 = 2;
NБ = NА = 1.
Добавим еще вершины:
NГ = NА = 1;
NД = NА + NГ = 1 + 1 = 2;
NИ = NЗ + NД = NЗ + 2;
Преобразуем первые вершины с учетом значений вторых:
NЕ = NБ + NК = 1 + 12 = 13 ;
NК = NЗ + NИ = 2NЗ + 2 = 10 + 2 = 12;
NЗ = NВ + NГ + NД = 2 + 1 + 2 = 5;
NВ = NА + NБ = 2;
NБ = NА = 1.
Подставим в формулу (1):
N = NЖ = 13 + 12 + 5 + 2 + 1 = 33
# Пусть белый цвет это false и соответственно черный true
эта функция определяет цвет по ее координатам, которые не больше числа 8
def checkColor(x, y):
assert x <= 8 and y <= 8
color = None
if x % 2 == 0:
if y % 2 == 0:
color = True
else:
color = False
else:
if y % 2 == 0:
color = False
else:
color = True
return color
# Задаем координаты первой и второй позиции
k, l, m, n = map(int, input().split())
if checkColor(k, l) == checkColor(m, n):
print('YES')
else:
print('NO')
Объяснение: