Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик 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.
Для начала переведем в десятичную 7*1+2*9+1*81=106. Перенесем 24 вправо 106-24=82. Число = Нужно 82 перевести в другую систему, вопрос в какую. Честно говоря взял наугад 7 (основание должно быть явно меньше 10 и даже 9). Делим нацело 82/7=11 + 5 остаток (это будет младший разряд) теперь делим 11/7=1+4 (остаток будет второй цифрой) и единичка (на 7 больше не делится) будет самым старшим разрядом.
Теперь, как я понял, нужно перевести в троичную (если другое число, не 82, то переведите по примеру). 82/3=27+1(остаток, младший разряд), 27/3=9+0(0 это следующий разряд), 9/3=3+0 (0 это третий разряд), 3/3=1+0 (0 это четвертый разряд), и осталась единичка, которая на 3 не делится (нет целой части от деления). Это будет самый старший разряд. Получили.
Вот пример программы на паскале 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.
Объяснение:
Для начала переведем в десятичную 7*1+2*9+1*81=106. Перенесем 24 вправо 106-24=82. Число = Нужно 82 перевести в другую систему, вопрос в какую. Честно говоря взял наугад 7 (основание должно быть явно меньше 10 и даже 9). Делим нацело 82/7=11 + 5 остаток (это будет младший разряд) теперь делим 11/7=1+4 (остаток будет второй цифрой) и единичка (на 7 больше не делится) будет самым старшим разрядом.
Теперь, как я понял, нужно перевести в троичную (если другое число, не 82, то переведите по примеру). 82/3=27+1(остаток, младший разряд), 27/3=9+0(0 это следующий разряд), 9/3=3+0 (0 это третий разряд), 3/3=1+0 (0 это четвертый разряд), и осталась единичка, которая на 3 не делится (нет целой части от деления). Это будет самый старший разряд. Получили.