Вывести на экран цифру, которая наиболее часто встречается в шестандцатиричной записи числа - PascalABC.NET
Формулировка задачи:
С клавиатуры вводится число n .написать программу которая выводит на экран цифру, которая наиболее часто встречается в шестандцатиричной записи числа
Решение задачи: «Вывести на экран цифру, которая наиболее часто встречается в шестандцатиричной записи числа»
textual
Листинг программы
begin
Writeln(ReadLnInteger().ToString('X').ToArray().GroupBy(ch -> ch).OrderByDescending(g -> g.Count()).First().Key);
end.
Объяснение кода листинга программы
В данном коде:
ReadLnInteger()- считывает целое число с консоли (или другого устройства ввода) и возвращает его..ToString('X')- преобразует число в шестнадцатеричную систему счисления и возвращает строку..ToArray()- преобразует полученную строку в массив символов.GroupBy(ch -> ch)- группирует символы массива по их значению (символы с одинаковым значением будут в одной группе).OrderByDescending(g -> g.Count())- сортирует группы в порядке убывания количества элементов в них.First()- возвращает первый элемент (группу) из отсортированного списка групп.Key()- возвращает ключ (характеристику) первого элемента (группы).Writeln(result)- выводит результат на экран. Таким образом, код считывает число, преобразует его в шестнадцатеричную систему счисления, разбивает полученную строку на символы, группирует их по значению, сортирует группы в порядке убывания количества элементов, выбирает первую группу и выводит на экран её ключ (наиболее часто встречающийся символ).