2 клетки. Потому что в условии описан квадрат, окаймление которого - пустота. Данным условиям удовлетворяет только 2 варианта:
С4 и D4. Во всех остальных случаях - беда)
===== PascalABC.NET =====
begin
var (s, n) := ReadInteger2('Введите S и N:');
var r := 0;
for var m10 := 0 to S div 10 do
begin
for var m5 := 0 to (S - 10 * m10) div 5 do
begin
if m10 + m5 > N then
break;
for var m2 := 0 to (S - 10 * m10 - 5 * m5) div 2 do
begin
if m10 + m5 + m2 > N then
break;
for var m1 := 0 to S - 10 * m10 - 5 * m5 - 2 * m2 do
begin
if m10 + m5 + m2 + m1 > N then
break;
if (m10 * 10 + m5 * 5 + m2 *2 + m1 = s) and
(m10 + m5 + m2+ m1 = N) then
begin
$'{m10} x 10 + {m5} x 5 + {m2} x 2 + {m1} x 1'.Println;
Inc(r)
end
end
end
end
end;
if r > 0 then
Println('Найдено вариантов размена:', r)
else
Println('Вариантов такого размена нет')
end.
1. при сложении и вычитании двоичных чисел помним о следующих правилах:
0+0=0 0-0 = 0
1+0=1 1-0 = 1
1+1 = 10 1-1 = 0
0+1 = 1 10-1 = 1
1010+10 = 1100
1010-10 = 1000
2.при умножении и делении действуем так же, как в десятичной СС
1010 1010*10 = 10100
<u>* 10</u>
0000
<u>+1010 </u>
10100
1010<u>| 10 </u> 1010/10 = 101<u>
</u>
<u>1010</u> 101
0