920. Используй функцию

 

Задано три вещественных числа х, у и z. Определить min(max(x, y), max(y, z), x + y + z), воспользовавшись вспомогательными функциями для вычисления минимального и максимального элементов из двух заданных.

 

Вход. В единственной строке задано три вещественных числа х, у и z. Значения чисел не превышают по модулю 100.

 

Выход. Вывести ответ с точностью до 2 знаков после десятичной точки.

 

Пример входа

Пример выхода

1.05 2.25 2.15

2.25

 

 

РЕШЕНИЕ

функции

 

Анализ алгоритма

Определим функции минимума и максимума двух чисел. С их помощью вычислим требуемое выражение.

 

Реализация алгоритма

Определим функции минимума min и максимума max двух чисел.

 

double min(double x, double y)

{

  return (x < y) ? x : y;

}

 

double max(double x, double y)

{

  return (x > y) ? x : y;

}

 

Основная часть программы. Читаем входные данные. Вычисляем и выводим ответ.

 

scanf("%lf %lf %lf",&x,&y,&z);

res = min(min(max(x,y),max(y,z)),x+y+z);

printf("%.2lf\n",res);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    con.useLocale(Locale.US);

    double x = con.nextDouble();

    double y = con.nextDouble();

    double z = con.nextDouble();

   

    double res = Math.min(Math.min(Math.max(x,y),

                          Math.max(y,z)), x + y + z);

    System.out.println(res);

    con.close();

  }

}

 

Java реализация – собственные функции

 

import java.util.*;

 

public class Main

{

  public static double min(double x, double y)

  {

    return (x < y) ? x : y;

  }

 

  public static double max(double x, double y)

  {

    return (x > y) ? x : y;

  }

   

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    double x = con.nextDouble();

    double y = con.nextDouble();

    double z = con.nextDouble();

   

    double res = min(min(max(x,y), max(y,z)), x + y + z);

    System.out.println(res);

    con.close();

  }

}

 

Python реализация

 

x, y, z = map(float, input().split())

res = min(min(max(x, y), max(y, z)), x + y + z);

print(res)