Дан набор из N целых положительных чисел. Необходимо определить, какая цифра чаще всего встречается в десятичной записи чисел этого набора. Если таких цифр несколько, необходимо вывести наибольшую из них. Напишите эффективную п...

Дан набор из N целых положительных чисел. Необходимо определить, какая цифра чаще всего встречается в десятичной записи чисел этого набора. Если таких цифр несколько, необходимо вывести наибольшую из них. Напишите эффективную по времени и по памяти программу для решения этой задачи. Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз. Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает одного килобайта и не увеличивается с ростом N. Описание входных и выходных данных В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000. Пример входных данных: 3 15 25 32 Пример выходных данных для приведённого выше примера входных данных: 5 В десятичной записи чисел заданного набора чаще всего – по 2 раза – встречаются цифры 2 и 5, большая из них – 5.
Гость
Ответ(ы) на вопрос:
Гость
var a:array[1..1000] of integer; 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
Гость
// PascalABC.NET 3.2, сборка 1387 от 20.02.2017 // Внимание! Если программа не работает, обновите версию! 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. И это - всё. Работает точно в соответствии с примером, поэтому результатов не привожу.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы