Светодиод может находиться в трех состояниях. какое минимальное количество светодиодов понадобиться, чтобы собрать индикатор воспроизводить 100 различных сообщений? в ответе укажите целое число.
"Длинный" вариант Если состояний три, то и система счисления - троичная. 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, т.е.для кодирования ста сообщения понадобится пять светодиодов
Const n=10;m=7; var a:array[1..n,1..m]of integer; flag,i,j,b:integer; begin for i:=1 to n do begin writeln; for j:=1 to m do begin a[i,j]:=random(312)-111; write(a[i,j]:4); end; end; writeln; Writeln('B ?'); readln(b); for i:=1 to n do for j:=1 to m do if a[i,j]=b then flag:=1; if flag=1 then writeln('Yes') else writeln('N'); end.
вариант 2 const n=10;m=7; var a:array[1..n,1..m]of integer; k,i,j,b:integer; begin for i:=1 to n do begin writeln; for j:=1 to m do begin a[i,j]:=random(312)-111; write(a[i,j]:4); end; end; writeln; Writeln('B ?'); readln(b); for i:=1 to n do for j:=1 to m do if a[i,j]=b then k:=k+1; if k<>0 then writeln('Yes') else writeln('N'); end.
Программа Вот: Program z1;Var a,b,c,d,k:integer;BeginWriteln('Введите трехзначное число');REadln(a);While a<>0 do beginWriteln('Введите трехзначное число');REadln(a);b:=a div 100 mod 10;c:=a div 10 mod 10;d:=a mod 10;if b+c+d div 10 >0 then writeln('Сумма цифр- двузначное число') else writeln ('Нет, сумма цифр не двузначное число');if b*C*D div 100 >0 then writeln('Произведение цифр- терхзначное число') else writeln ('Нет, произведение цифр не трехзначное число число');Writeln ('Введите любое число');Readln (k);If b*c*d>k then writeln('Произведение цифр больше числа') else writeln('Произведение меньше числа');if B+c+d div 5 =0 then writeln('Сумма цифр числа кратна 5') else writeln ('Сумма цифр не кратна 5');if B+c+d div k =0 then writeln('Сумма цифр числа кратна числу, введенному с клавиатуры') else writeln ('Сумма цифр не кратна числу, введенному с клавиатуры');End;End. Есть маленькая проблема в начале, не помню как прописывать, поэтому число первый раз нужно вводить 2 раза, если не устраевает, можете воспользоваться другими ресурсами
Если состояний три, то и система счисления - троичная.
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, т.е.для кодирования ста сообщения понадобится пять светодиодов