11010011-21211-в троичной(11010011(2)=1*2(0)+1*2(1)+0*2(2)+0*2(3)+1*2(4)+0*2(5)+1*2(6)+1*2(7)=211(10)
далее из десятичной в троичную
211/3 остаток 1 ответ 1
70/3 1 и 1
23/3 2 2
7/3 1 1
2/3 2 2
в итоге ответ 21211
3 оставшихся числа не содержит 0, 2 и 7, т.е. остаток 10-3=7
возможные варианты: 1*1*7*7*7=343 для 1 позиции
1-число 7, 7 число (1,3,4,5,6,8,9)
возможные варианты
77711
77171
77117
71771
71717
71177
17771
17717
17177
11777
всего 343*10=3430 вариантов
ответ 3430
256=2⁸, следовательно для кодирования 1 символа требуется 8 бит= 1 байт
15*32*64= 30720 символов содержит текст
30720*1 байт = 30720байт
Держи:
program kk;
uses crt;
var a:array [1..5,1..5] of integer;
i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 5 do
begin
for j:=1 to 5 do
a[i,j]:= random(90)+10;
end;
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(a[i,j],' ');
writeln
end;
writeln;
writeln;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
if (a[i,j] > 0) and (a[i,j] mod 3 = 0) then
begin
writeln(a[i,j],' [',i, ',',j,']');
end;
end;
end;
readkey;
end.
Внутри функции вызывается ввод трех чисел со строки, затем из этих чисел составляется список, затем формируется список из всех элементов исходного списка, которые больше нуля, в итоге выводится длина получившегося списка. Мне не хотелось использовать различные счетчики и if-elif, поэтому решение такое.
def func():
a = int(input())
b = int(input())
c = int(input())
numbers = [a, b, c]
return len([number for number in numbers if number > 0])
func()
Можно еще изменить решение так, чтобы введенные числа сразу отправлялись в список.
def func():
numbers = []
for i in range(3):
numbers.append(int(input()))
return len([number for number in numbers if number > 0])
func()