===== PascalABC.NET =====
function СуммаЦифрЧетная(n: integer): boolean;
begin
var s := 0;
while n > 0 do
begin
s := s + n mod 10;
n := n div 10;
end;
Result := s.IsEven
end;
begin
var n := ReadInteger('n =');
var a:= ArrRandom(n, 0, 300);
a.Println;
a := a.Where(p -> СуммаЦифрЧетная(p)).ToArray;
a.Println
end.
Раскладываем по степеням двойки:
67 (10cc) = 64+2+1 = 2^6+2^1+2^0 = 1 000 011 (2cc)
ИЛИ
67 |2
66 |-----
---- | 33 | 2
1 32 |----
----| 16 |2
1| 16 |------
----| 8| 2
0| 8|-----
---| 4|2
0| 4|-----
--|2|2
0|2|----
--| 1 <----- первая цифра в числе и далее - остатки
0
49 (10cc)=32+16+1=2^5+2^4+2^0=110 001 (2cc)
54= 32+16+4+2= 2^5+2^4+2^2+2^1= 110 110 (2cc)
81=64+16+1=2^6+2^4+2^0=1 010 001 (2cc)
Ответ:
Объяснение:
Решим эту задачу при помощи EXCEL:
Чтобы скопировать изоброжения