Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program lab22;
- uses SysUtils;
- Function InputNumber(): Integer;
- const
- MAX_NUMBER = 1000000000;
- MIN_NUMBER = 1;
- var
- IsCorrect: Boolean;
- Number: Integer;
- begin
- Writeln('Введите натуральное число не большее, чем ', MAX_NUMBER);
- repeat
- IsCorrect := true;
- try
- Readln(Number);
- except
- Writeln('Оно должно быть целым числом, которое не больше, чем ',
- MAX_NUMBER);
- IsCorrect := false;
- end;
- if IsCorrect and ((Number < MIN_NUMBER) or (Number > MAX_NUMBER)) then
- begin
- Writeln('Число должно являться положительным и быть не больше, чем ',
- MAX_NUMBER);
- IsCorrect := false;
- end;
- until IsCorrect;
- InputNumber := Number;
- end;
- Function SearchMaxCountOfRepeats(NumberArray: String): Integer;
- var
- MaxCountOfRepeats, Counter, i, j, EndNumber: Integer;
- begin
- EndNumber := length(NumberArray);
- MaxCountOfRepeats := 0;
- for i := 1 to EndNumber do
- begin
- Counter := 1;
- for j := i + 1 to EndNumber do
- begin
- if (NumberArray[i] = NumberArray[j]) then
- Inc(Counter);
- if (Counter > MaxCountOfRepeats) then
- MaxCountOfRepeats := Counter;
- end;
- end;
- SearchMaxCountOfRepeats := MaxCountOfRepeats;
- end;
- Procedure AllSolutions(MaxCountOfRepeats: Integer; NumberArray: String);
- var
- Counter, i, j, EndNumber: Integer;
- begin
- EndNumber := length(NumberArray);
- for i := 1 to EndNumber do
- begin;
- Counter := 1;
- for j := i + 1 to EndNumber do
- begin
- if (NumberArray[i] = NumberArray[j]) then
- begin
- Inc(Counter);
- if (Counter = MaxCountOfRepeats) then
- Write(NumberArray[i], ' ');
- end;
- end;
- end;
- end;
- Procedure PrintResult(MaxCountOfRepeats: Integer; NumberArray: string);
- begin
- Writeln('Самая часто встречающаяся цифра/цифры: ');
- if (MaxCountOfRepeats = 1) then
- Writeln('Такой цифры нет');
- if (MaxCountOfRepeats = 0) then
- Writeln(NumberArray)
- else
- AllSolutions(MaxCountOfRepeats, NumberArray);
- end;
- var
- NumberArray: String;
- MaxCountOfRepeats: Integer;
- begin
- Writeln('Программа позволяет узнать, какая цифра в данном числе встречается чаще всего.');
- NumberArray := IntToStr(InputNumber());
- MaxCountOfRepeats := SearchMaxCountOfRepeats(NumberArray);
- PrintResult(MaxCountOfRepeats, NumberArray);
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement