Паскаль авс, написать программу с функцией. вводится n целых чисел. написать программу, которая определяет число, сумма цифр которого наибольшая. если таких цифр несколько, то вывести их количество.
Static class Program { public static IEnumerable<uint> Digits(this uint X, bool Reverse = true) { do { yield return X % 10; } while ((X /= 10) != 0); }
Procedure ShellStr(var s: string); { сортирует символы строки методом Шелла } var i, j, n, step: integer; c: char; begin s := Trim(s); n := Length(s); step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if s[i] > s[i + step] then begin c := s[i]; s[i] := s[i + 1]; s[i + 1] := c end; i := i + step end end; step := step div 2 end end;
procedure TrimNullsLeft(var s: string); { Усекает левые (незначащие нули) в строке s } var i, n: integer; begin i := 1; n := Length(s); while (s[i] = '0') do i := i + 1; s := Copy(s, i, n - i + 1) end;
var p: integer; s, M, N: string; f: text;
begin Assign(f, 'input.txt'); Reset(f); Readln(f, s); Close(f); Assign(f, 'output.txt'); Rewrite(f); s := Trim(s); p := Pos(' ', s); M := Copy(s, 1, p - 1); N := Copy(s, p + 1, Length(s) - p); s := M + N; ShellStr(s); TrimNullsLeft(s); Writeln(f, s); Close(f); Writeln('Программа завершила работу') end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Паскаль авс, написать программу с функцией. вводится n целых чисел. написать программу, которая определяет число, сумма цифр которого наибольшая. если таких цифр несколько, то вывести их количество.
{
public static IEnumerable<uint> Digits(this uint X, bool Reverse = true)
{
do { yield return X % 10; } while ((X /= 10) != 0);
}
static uint ToUnsignedInt32(this IEnumerable<uint> Digits)
{
return Digits.Reverse().Aggregate((a, d) => a * 10 + d);
}
static void Main()
{
Console.WriteLine(
uint.Parse(Console.ReadLine())
.Digits()
.Where(d => d % 2 == 1)
.ToUnsignedInt32());
Console.ReadKey();
}
}