Вопрос по информатике:
Дан набор из N целых положительных чисел. Необходимо определить, какая цифра чаще всего встречается в десятичной записи чисел этого набора. Если таких цифр несколько, необходимо вывести наибольшую из них.
Напишите эффективную по времени и по памяти программу для решения этой задачи.
Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.
Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает одного килобайта и не увеличивается с ростом N.
Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000).
В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000.
Пример входных данных:
3
15
25
32
Пример выходных данных для приведённого выше примера входных данных:
5
В десятичной записи чисел заданного набора чаще всего – по 2 раза – встречаются цифры 2 и 5, большая из них – 5.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 14.12.2017 06:03
- Информатика
- remove_red_eye 562
- thumb_up 25
Ответы и объяснения 2
k:array[0..9] of integer;
n,i,m:integer;
begin
readln(n);
for i:=1 to n do readln(a[i]);
for i:=0 to 9 do k[i]:=0;
for i:=1 to n do
begin
m:=a[i];
while m>0 do
begin
inc(k[m mod 10]);
m:=m div 10;
end;
end;
m:=0;
for i:=1 to 9 do
if k[i]>=k[m] then m:=i;
writeln(m);
end.
Пример:
3
15
25
32
5
- 15.12.2017 19:42
- thumb_up 43
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadlnInteger;
var d:=new Dictionary;
for var i:=1 to n do
foreach var e in ReadlnInteger.ToString do
d[e]:=d.Get(e)+1;
d.OrderByDescending(x->x.Value).ThenByDescending(x->x.Key)
.Select(x->x.Key).Take(1).Println
end.
И это - всё. Работает точно в соответствии с примером, поэтому результатов не привожу.
- 16.12.2017 21:18
- thumb_up 14
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.