Программа определяет, является ли число N...
Программа определяет, является ли число N, меньшее, чем число M, третьей степенью какого-либо числа.
При вводе кубов 1, 2, 3 и 5 выводится YES, но кубы остальных чисел не определяются (NO)
В чем может быть проблема?
Приложения:
![](https://st.uroker.com/files/43a/43a931cd652e4c126ea1fd6279932396.png)
Ответы
Ответ дал:
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.
Вроде правильно выводит
Ответ дал:
0
Моя программа вышла из Вашей. Причина, по которой Ваш вариант некорректно работал - погрешности извлечения корня путем возведения в дробную степень. Например, при извлечение куба числа 64 - ответ данной функции был 3.1 (не 4). Посему, Ваша программа выдавала остаток 1 и условие не выполнялось
Ответ дал:
0
Странно... При выполнении программы power(N,1/3) при N=64 в pascalABC выводится 4
Ответ дал:
0
Ах да, забыл отписать каким путем я вывел выше "извлечение". Отдельно разложил trunc и frac функции и вышло, что при trunc - 3, при frac - 1
Ответ дал:
0
Да, вы правы. Спасибо за объяснение)
Ответ дал:
0
Всегда пожалуйста
Вас заинтересует
1 год назад
1 год назад
2 года назад
2 года назад
7 лет назад
7 лет назад
8 лет назад