Блог пользователя ironsoul

Автор ironsoul, история, 9 лет назад, По-русски

Всем привет, можете пожалуйста подсказать, почему программа отвечает "nan" на эту задачу(4 тест) http://codeforces.net/contest/671/problem/A

  • Проголосовать: нравится
  • -13
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Покажи код)

Варианты -- корень из отрицательного числа, деление 0 на 0, или что-нибудь подобное.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Координаты переполняются при вычислении dist. Они до 10^9 а ты их возводишь в квадрат.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    У программирующих на java(у меня) при делении какого-то конткретного числа(значения примитивного типа) на нуль,генерируется исключение(объект) типа класса ArethmaticException,но ни как не NaN.
    NaN выводится на консоль,если было произведена операция нахождения корня отрицательного числа и т.д.

    P.S:По правде говоря,я точно не знаю когда и в каком случаи генерируеться NaN на консоли,если писать ошибочные операции на языках помимо java.

    • »
      »
      »
      9 лет назад, # ^ |
      Rev. 4   Проголосовать: нравится +5 Проголосовать: не нравится

      Попробуй

      double s = 5 / 0.0;
      double f = 0.0 / 0.0;
      double q = Math.sqrt(1000000000 * 1000000000);
      System.out.print(s);
      System.out.print(f);
      System.out.print(q);
      

      значение в f и q — NaN. s — Infinity. Важно, что они double.

      Стандарт чисел с плавающей точкой используется одинаковый, что в плюсах, что в джаве.

      q не работает по той же причине, что и в посте -- переполнение приводит к отрицательному числу (правда в java это наверное более определенная операция, чем в плюсах, не уверен)

»
9 лет назад, # |
  Проголосовать: нравится -16 Проголосовать: не нравится

Только не "nan",а "NaN"