"Длинный" вариант Если состояний три, то и система счисления - троичная. 100 сообщений потребуют 101 разное состояние, потому что еще должно быть нулевое состояние, когда сообщения отсутствуют и все светодиоды погашены. Переводим 100 в троичную систему счисления. 100 / 3 = 33, остаток 1 33 / 3 = 11, остаток 0 11 / 3 = 3, остаток 2 3 / 3 = 1, остаток 0. Теперь выписываем остаток и приписываем к нему остатки в обратном порядке: 10201 Итак, 100₁₀ = 10201₃, т.е для кодирования ста сообщения понадобится пять светодиодов (по числу разрядов в числе).
Короткий вариант Если состояний три, то и система счисления - троичная. 100 сообщений потребуют 101 разное состояние, потому что еще должно быть нулевое состояние, когда сообщения отсутствуют и все светодиоды погашены. Нам нет необходимости узнавать точное троичное значение числа 100, поскольку необходимо знать лишь количество разрядов в его записи. А это позволит сделать нахождение логарифма 100 по основанию 3. Окончательно принимаем n=5, т.е.для кодирования ста сообщения понадобится пять светодиодов
Задача 1 var a:array [1..100] of integer; i,n:integer; begin writeln('Введите n <=100'); readln(n); writeln('Введите массив'); for i:=1 to n do readln(a[i]); writeln('Массив'); for i:=1 to n do write(a[i], ' '); writeln; writeln('Элементы равные сумме двух соседей:'); for i:=2 to (n-1) do if a[i]=(a[i-1]+a[i+1]) then write(a[i],' '); writeln; end.
задача 5 var a:array [1..10000] of integer; i,n, mx1, mx2:integer; begin writeln('Введите n <=10000'); readln(n); writeln('Введите массив'); for i:=1 to n do readln(a[i]); writeln('Массив'); for i:=1 to n do write(a[i], ' '); writeln; mx1:=1; for i:=2 to n do if a[i]>a[mx1] then mx1:=i; if mx1=1 then mx2:=2 else mx2:=1; for i:=1 to n do if (a[i]>a[mx2])and(i<>mx1) then mx2:=i; writeln('Два числа произведение которых максимально: ',a[mx2],' ',a[mx1]); end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку