Автомат обрабатывает целое число N (0 ≤ N ≤ 255) по следующему алгоритму: 1) Строится восьмибитная двоичная запись числа N. 2) Все цифры двоичной записи заменяются на противоположные (0 на 1, 1 на 0). 3) Полученное число переводится в десятичную запись. 4) Из нового числа вычитается исходное, полученная разность выводится на экран. Какое число нужно ввести в автомат, чтобы в результате получилось 45?
Если три нуля значащие, значит число начинается с единицы. Поскольку любое число в развернутой записи есть сумма произведений, каждое из которых представляет собой произведение цифры, находящейся на n-й позиции на основание системы счисления, возведенной в степень n-1, то понятно, что чем больше по величине будут цифры в старших разрядах, тем больше будет само число. В применении к двоичной системе это означает, что слева должны стоять все единицы, а справа - нули. Получаем 11000(2)=1х2^4+1x2^3=16+8+=24(10) - тут символ ^ означает возведение в степень. ответ: 24
Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик b (у него индексами являются сами числа, а элементами - количество этого числа в массиве А), куда будет присваиваться, сколько раз нам встречается то или иное число (перед этим мы массив обязательно обнулим). В конце мы смотрим максимальное число из массива-счетчика. Вуаля!
Вот пример программы на паскале ABC:
var a:array [1..1000000] of integer; b:array [1..10] of longint; c:integer; i,max,n:longint; begin write('Введите число элементов массива: '); readln(n); max:=0; for i:=1 to 10 do b[i]:=0; for i:=1 to n do begin a[i]:=random(10)+1; write(a[i],' '); b[a[i]]:=b[a[i]]+1 end; for i:=1 to 10 do if b[i]>max then begin c:=i; max:=b[i] end; writeln; writeln('Чаще всего в массиве встречается число ',c) end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку