8608. sgn функция

 

Найдите значение sgn функции:

Вход. Одно целое число x (-109 ≤ x ≤ 109).

 

Выход. Выведите значение sgn функции для заданного значения x.

 

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

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

4

1

 

 

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

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

0

0

 

 

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

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

-2

-1

 

 

РЕШЕНИЕ

условный оператор

 

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

Для решения задачи можно воспользоваться условным оператором.

 

Рассмотрим другое решение. Запишем условие следующим образом:

y = 1 * (x > 0) + 0 * (x == 0) + (-1) * (x < 0);

или

y = (x > 0) - (x < 0);

Например, если

·        x положительно, то y = 1 – 0 = 1;

·        x = 0, то y = 0 – 0 = 0;

·        x отрицательно, то y = 0 – 1 = -1;

 

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

Читаем входное значение x.

 

scanf("%d", &x);

 

Вычисляем значение sgn функции.

 

if (x > 0)  y = 1; else

if (x == 0) y = 0; else

            y = -1;

 

Выводим ответ.

 

printf("%d\n", y);

 

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

Читаем входное значение x.

 

scanf("%d", &x);

 

Вычисляем значение sgn функции.

 

y = (x > 0) - (x < 0);

 

Выводим ответ.

 

printf("%d\n", y);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int y, x = con.nextInt();

 

    if (x > 0)  y = 1; else

    if (x == 0) y = 0; else

      y = -1;

 

    System.out.println(y);

    con.close();

  }

}

 

Python реализация

Читаем входное значение x.

 

x = int(input())

 

Вычисляем значение sgn функции.

 

if x > 0: y = 1

elif x == 0: y = 0

else: y = -1

 

Выводим ответ.

 

print(y)

 

Python реализация без if

Читаем входное значение x.

 

x = int(input())

 

Вычисляем значение sgn функции.

 

y = (x > 0) - (x < 0)

 

Выводим ответ.

 

print(y)