X mod 3 - последняя цифра в троичной записи числа X. X div 3 - число, полученное отбрасыванием последней цифры в троичной системе счисления.
Используя написанное выше, легко понять, что делает программа.
Сначала M = L = 0, затем в цикле, пока X > 0, к M прибавляется 1, к L прибавляется 1, если последняя цифра в троичной записи числа равна 2. Потом последняя троичная цифра отбрасывается. В конце выводится M и L.
Программа выводит количество троичных цифр в записи числа X и количество двоек в троичной записи числа X.
Итак, нужно найти количество чисел, троичная запись которых состоит из 5 цифр, из которых ровно две двойки.
Если первая цифра не двойка, то она 1 (0 быть не может): 1. Для двоек можно выбрать место на каждое из мест, обозначенных вопросом, можно поставить любую из 2 цифр (0 или 1). Получается 6 * 2 * 2 = 24 числа.
Если первая цифра двойка, то место для второй двойки можно выбрать каждый вопрос можно заполнить одной из двух цифр, итого 4 * 2 * 2 * 2 = 32 числа.
56
Объяснение:
X mod 3 - последняя цифра в троичной записи числа X. X div 3 - число, полученное отбрасыванием последней цифры в троичной системе счисления.
Используя написанное выше, легко понять, что делает программа.
Сначала M = L = 0, затем в цикле, пока X > 0, к M прибавляется 1, к L прибавляется 1, если последняя цифра в троичной записи числа равна 2. Потом последняя троичная цифра отбрасывается. В конце выводится M и L.
Программа выводит количество троичных цифр в записи числа X и количество двоек в троичной записи числа X.
Итак, нужно найти количество чисел, троичная запись которых состоит из 5 цифр, из которых ровно две двойки.
Если первая цифра не двойка, то она 1 (0 быть не может): 1. Для двоек можно выбрать место на каждое из мест, обозначенных вопросом, можно поставить любую из 2 цифр (0 или 1). Получается 6 * 2 * 2 = 24 числа.
Если первая цифра двойка, то место для второй двойки можно выбрать каждый вопрос можно заполнить одной из двух цифр, итого 4 * 2 * 2 * 2 = 32 числа.
Всего 24 + 32 = 56 вариантов.
Pascal
const
nmax = 100;
var
A: array[1..nmax, 1..nmax] of real;
i, j, n, count: byte;
begin
Writeln('Введите N');
Readln(n);
Writeln('Исходная матрица');
count:=0;
for i := 1 to N do
begin
for j := 1 to N do
begin
a[i, j] := (Sin(Sqr(i) - Sqr(j)) / N);
write(A[i, j]:10:3);
if a[i,j]> 0 then Inc(count);
end;
writeln;
end;
Writeln('Количество положительных элементов: ', count);
end.
Тестовое решение
Введите N
5
Исходная матрица
0.000 -0.028 -0.198 -0.130 0.181
0.028 0.000 0.192 0.107 -0.167
0.198 -0.192 0.000 -0.131 0.058
0.130 -0.107 0.131 0.000 -0.082
-0.181 0.167 -0.058 0.082 0.000
Количество положительных элементов: 10