Рассмотрим различные варианты слов из 20 букв, которые содержат 18 букв Т (звёздочка обозначает любую из оставшихся 10 букв):
ТТТТТТТТТТТТТТТТТТ**
ТТТТТТТТТТТТТТТТТ**Т
...
**ТТТТТТТТТТТТТТТТТТ - 19 вариантов
ТТТТТТТТТТТТТТТТТ*Т*
ТТТТТТТТТТТТТТТТ*ТТ*
ТТТТТТТТТТТТТТТ*ТТТ*
...
*ТТТТТТТТТТТТТТТТТТ* - 18 вариантов
ТТТТТТТТТТТТТТТТ*Т*Т
ТТТТТТТТТТТТТТТ*ТТ*Т
ТТТТТТТТТТТТТТ*ТТТ*Т
...
*ТТТТТТТТТТТТТТТТТ*Т - 17 вариантов
...
Т*Т*ТТТТТТТТТТТТТТТТ
*ТТ*ТТТТТТТТТТТТТТТТ - 2 варианта
*Т*ТТТТТТТТТТТТТТТТТ - 1 вариант
19+18+17+...+2+1 = 190
Для решения задачи можно также использовать формулу для вычисления числа перестановок с повторениями:
P(nт,n*) = (18+2)!/(18!*2!) = 20!/(18!*2!) = 19*20/2 = 190
Вместо каждой из "*" может стоять любой из десяти символов (кроме Т), то есть на каждую из 190 перестановок мы имеем 10^2 = 100 вариантов распределения остальных символов на месте звёздочек.
Общее количество вариантов = 190*100 = 19000
Чтобы сложить две цифры в одном разряде в системе счисления по некоторому основанию n, достаточно выполнить сложение в любой подходящей системе счисления (например, десятичной). Если результат будет меньше n, его следует записать в заданной системе счисления. В противном случае из результата нужно вычесть n, записать полученную разность и сделать перенос +1 в старший разряд.
Примеры в системе счисления по основанию 10.
5+3=8
6+4=10, 10-10=0 и +1 в следующий разряд
9+5=14, 14-10=4 и +1 в следующий разряд.
Эти же примеры в системе счисления по основанию 12.
5+3=8
6+4=10, записываем, как А₁₂
9+5=14, 14-12=2 и +1 в следующий разряд, получаем 12₁₂
Эти же примеры в системе счисления по основанию 16.
5+3=8
6+4=10, записываем, как А₁₆
9+5=14, записываем, как E₁₆
а) ложь б) истина в) ложь г) истина д) истина
е) ложь ж) ложь и) ложь к) истина
1)
Var
a:array[1..10] of integer;
i:integer;
begin
for i:=1 to 10 do
read(a[i]);
randomize;
for i:=1 to 10 do
a[i]:=random(136)+22;
for i:=1 to 10 do
if a[i]>100 then writeln(a[i]);
end.
2.
var
a,n:integer;
begin
readln(a,n);
a:=a^n;
writeln(a);
end;
6.
var
x:array[1..5] of real;
i:integer;
begin
for i:=1 to 5 do
begin
read(x[i]);
if x[i]=9 then x[i]:=x[i]*3;
if x[i]>9 then x[i]:=x[i]/10;
writeln(x[i]);
end;
end.
// FreePascal
var
n, k, s: integer;
a: array of integer;
function IsPrime(n: integer): boolean;
var
i: integer;
begin
if n <= 1 then
Exit(False)
else
if n <= 3 then
Exit(True)
else
if (n mod 2 = 0) or (n mod 3 = 0) then
Exit(False);
i := 5;
while (i * i) <= n do
begin
if (n mod i = 0) or (n mod (i + 2) = 0) then
Exit(False);
i := i + 6;
end;
Exit(True);
end;
begin
s := 0;
write('n = ');
readln(n);
SetLength(a, n);
for k := 0 to (n - 1) do
begin
write('a[', k, '] = ');
readln(a[k]);
if IsPrime(k) then
s := s + a[k];
end;
writeln('Ответ: ', s);
end.