• Задача на языке Паскаля

    Дано натуральное число N. Напишите функцию int MinDigit (int n) (C/C++), function MinDigit (n:longint):integer (Pascal) и int MaxDigit (int n) (C/C++),function MaxDigit (n:longint):integer (Pascal), определяющую наименьшую и наибольшую цифры данного числа.

    Формат входных данных
    Задано единственное число
    Формат выходных данных
    Необходимо вывести  наименьшую и наибольшую цифры данного числа через пробел.

Ответы 1

  • Сделать эту задачу можно двумя способами. Первый - чисто арифметический. Второй - более хитрый, через операции над строками. Мы пойдем вторым путем, он короче и практичней, такой код будет требовать меньше ресурсов машины для реализации (что незаметно в таких маленьких задачках, но довольно критично в реальной жизни, поэтому учимся писать дальновидные коды).Var n:longint;Function MinDigit(n:longint):integer;var s,a:string; c,i:integer;begin str(n,s); a:=s[1]; for i:=2 to length(s) do   if s[i]<a then a:=s[i]; val(a,n,c); MinDigit:=n;end;Function MaxDigit(n:longint):integer;var s,a:string; c,i:integer;begin str(n,s); a:=s[1]; for i:=2 to length(s) do   if s[i]>a then a:=s[i]; val(a,n,c); MaxDigit:=n;end;Begin readln(n); writeln(MinDigit(n),' ',MaxDigit(n));End.По факту переменную "c" можно убрать из функций и использовать вместо нее уже не нужную в конце "i", таким образом избавившись от одной переменной. Но это не принципиально на самом деле, к тому же так понятней, какая переменная за что отвечает.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years