• Программа определяет, является ли число N...
    Программа определяет, является ли число N, меньшее, чем число M, третьей степенью какого-либо числа.
    При вводе кубов 1, 2, 3 и 5 выводится YES, но кубы остальных чисел не определяются (NO)
    В чем может быть проблема?

    question img

Ответы 6

  • Моя программа вышла из Вашей. Причина, по которой Ваш вариант некорректно работал - погрешности извлечения корня путем возведения в дробную степень. Например, при извлечение куба числа 64 - ответ данной функции был 3.1 (не 4). Посему, Ваша программа выдавала остаток 1 и условие не выполнялось
  • Странно... При выполнении программы power(N,1/3) при N=64 в pascalABC выводится 4
  • Ах да, забыл отписать каким путем я вывел выше "извлечение". Отдельно разложил trunc и frac функции и вышло, что при trunc - 3, при frac - 1
  • Да, вы правы. Спасибо за объяснение)
    • Автор:

      keely
    • 5 лет назад
    • 0
  • Всегда пожалуйста
  • var n,m,b: word;

    begin

    readln(m,n);

    if n<m then

    begin

    b:=round(power(n,1/3));

    if round(exp(ln(b)*3)) = n then writeln(true) else writeln(false);

    end

    else write('error');

    end.

    Вроде правильно выводит

    • Автор:

      leroyptor
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

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

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

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