//PascalABC.NET 3.1 сборка 1200 begin var n := ReadInteger('n='); var a := MatrixRandom(n, n, 0, 10); println(a);
var d := new System.Collections.Generic.Dictionary<integer, integer>(); for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do begin if d.ContainsKey(a[i, j]) then d[a[i, j]] += 1 else d.Add(a[i, j], 1); end;
var p := d.OrderByDescending(x -> x.Value).First(); println('Чаще всего встречается ' + p.Key + ', ' + p.Value + ' раз'); end.
Для облегчения выкладок разделим эти 64 множителя на шесть групп по 10 двоек в каждой и одну последнюю группу из четырех двоек. Произведение 10 двоек, как легко убедиться, равно 1024, а четырех двоек— 16. Значит, искомый результат равен 1024 X 1024 X 1024 X 1024 X 1024 X 1024 X 16.Перемножив 1024 X 1024, получим 1 048 576.Теперь остается найти 1048 576X1048 576X1048 576X16, отнять от результата единицу — и нам станет известно искомое число зерен: 18 446 744 073 709 551615. Известно, что кубический метр пшеницы вмещает около 15 миллионов зерен. Значит, награда шахматного изобретателя должна была бы занять объем примерно в 12 000 000 000 000 куб. м. Кстати, это геометрическая прогрессия и ее нужно было кидать в раздел "математика".
begin
var n := ReadInteger('n=');
var a := MatrixRandom(n, n, 0, 10);
println(a);
var d := new System.Collections.Generic.Dictionary<integer, integer>();
for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
begin
if d.ContainsKey(a[i, j]) then
d[a[i, j]] += 1
else
d.Add(a[i, j], 1);
end;
var p := d.OrderByDescending(x -> x.Value).First();
println('Чаще всего встречается ' + p.Key + ', ' + p.Value + ' раз');
end.