В многоподъездном доме 16 этажей по 4 квартиры на каждом этаже в одном подъезде. Сообщение о том, что Алексей живет в квартире номер сто девяносто девять, содержит 9 бит информации. Сколько подъездов в доме? В ответе укажите только число
сначала 9 представили в виде 3 в степени и расположили числа в порядке убывания получили 3^70-3^55+3^40-3^4
чтоб понять что будет представь что ты с 10000{2}-1000{2} когда ты вычитаешь эти числа у тебя кол-во единиц будет разноть между этими степенями двойки то есть 1 а кол-во нулей будет степень двойки которую ты вычитаешь то есть 3 а теперь к заданию когда мы вычли из первого второе число получили 22222{15}0000...00{55} теперь к этому числу прибавим 3^40 получим 22222{15}00...00{14}100...00{40} после вычитаем 3^4 получаем 2{15} 0{14} 1 2{36} 0{4}
begin Write('Введите через пробел три целых числа: '); Readln(i, j, k); n := 0; if (i in int) then begin Write(i, ' '); n := n + 1 end; if (j in int) then begin Write(j, ' '); n := n + 1 end; if (k in int) then begin Write(k); n := n + 1 end; case n of 0: Writeln('Ни одно из введенных чисел не принадлежит интервалу [1..3]'); 1: Writeln(' - принадлежит интервалу [1..3]'); else Writeln( ' - принадлежат интервалу [1..3]') end end.
Тестовое решение:
Введите через пробел три целых числа: 0 0 0 Ни одно из введенных чисел не принадлежит интервалу [1..3]
Введите через пробел три целых числа: 2 5 3 2 3 - принадлежат интервалу [1..3]
15+36=51
Объяснение:
сначала 9 представили в виде 3 в степени и расположили числа в порядке убывания получили 3^70-3^55+3^40-3^4
чтоб понять что будет представь что ты с 10000{2}-1000{2} когда ты вычитаешь эти числа у тебя кол-во единиц будет разноть между этими степенями двойки то есть 1 а кол-во нулей будет степень двойки которую ты вычитаешь то есть 3 а теперь к заданию когда мы вычли из первого второе число получили 22222{15}0000...00{55} теперь к этому числу прибавим 3^40 получим 22222{15}00...00{14}100...00{40} после вычитаем 3^4 получаем 2{15} 0{14} 1 2{36} 0{4}
int = [1..3];
var
i, j, k, n: integer;
begin
Write('Введите через пробел три целых числа: ');
Readln(i, j, k);
n := 0;
if (i in int) then begin Write(i, ' '); n := n + 1 end;
if (j in int) then begin Write(j, ' '); n := n + 1 end;
if (k in int) then begin Write(k); n := n + 1 end;
case n of
0: Writeln('Ни одно из введенных чисел не принадлежит интервалу [1..3]');
1: Writeln(' - принадлежит интервалу [1..3]');
else Writeln( ' - принадлежат интервалу [1..3]')
end
end.
Тестовое решение:
Введите через пробел три целых числа: 0 0 0
Ни одно из введенных чисел не принадлежит интервалу [1..3]
Введите через пробел три целых числа: 2 5 3
2 3 - принадлежат интервалу [1..3]