Условие пытается немного обмануть решающего. На самом деле всегда можно выбрать Рахманов ломтик строки, состоящий из одного символа (действительно, если в искомой подстроке несколько символов, то каждый из них встречается не меньшее число раз, что и сама подстрока). В итоге задача превращается в тривиальную: считать строку и вывести символ, встречающийся максимальное число раз.
#include <iostream>
int main() {
char c, maxchar;
int count[26] = {0}, maxcount = 0;
while (std::cin.get(c)) {
count[c - 'a']++;
}
for (c = 0; c < 26; c++) {
if (count[c] > maxcount) {
maxcount = count[c];
maxchar = c;
}
}
std::cout << static_cast<char>(maxchar + 'a');
return 0;
}
Подробнее - на -
Объяснение:
#include "pch.h"
#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int num, k=0;
string str;
cout << "Введи многозначное число" << endl;
cin >> num;
while (num != 0)
{
k += 1;
num /= 10;
}
if(k==1)
{
cout << k << " цифра" << endl;
}
else if (k >= 2 && k <= 4) {
cout << k << " цифры" << endl;
}
else {
cout << k << " цифр" << endl;
}
system("pause");
return 0;
}
var
i,j,k,n:integer;
a,b,c:array[,] of integer;
begin
Write('Число строк (столбцов) матрицы: '); Read(n);
SetLength(a,n,n);
SetLength(b,n,n);
SetLength(c,n,n);
Randomize;
Writeln('Матрица A');
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
a[i,j]:=Random(90)+10;
Write(a[i,j]:3)
end;
Writeln
end;
Writeln('Матрица B');
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
b[i,j]:=Random(90)+10;
Write(b[i,j]:3)
end;
Writeln
end;
// умножение и вывод
Writeln('Матрица C');
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
c[i,j]:=0;
for k:=0 to n-1 do c[i,j]:=c[i,j]+a[i,k]*b[k,j];
Write(c[i,j]:6)
end;
Writeln
end;
end.
Тестовое решение
Число строк (столбцов) матрицы: 5
Матрица A
25 81 17 87 40
36 79 25 98 66
90 64 73 30 54
75 12 92 48 84
94 91 71 96 94
Матрица B
38 96 54 10 24
66 47 13 15 81
87 33 35 11 19
48 20 16 40 14
34 94 91 97 64
Матрица C
13311 12268 8030 9012 11262
15705 16158 11420 12142 13334
17271 19733 13641 9101 12607
16806 19656 15838 12010 10568
23559 26400 18834 16044 18336