Это своего рода необычный вопрос, но я работаю над проблемой, и моя проблема в том, что он работает. Но только когда я запускаю его, а не когда он проходит через процесс отправки. Я написал эту функцию для обработки показателей с помощью рекурсии (требование задачи).
double Pow(double num, int power) {
if (num == 1.0 || power == 0){
return 1.0;
} else if ( power > 0){
return (num * Pow( num, power - 1 ) );
} else{
return ( (1.0/num) * Pow( num, power + 1 ) );
}
}
Когда я отправляю код, он не проходит каждый модульный тест. При ручном вводе значений, используемых в модульных тестах, он дает правильный результат, поэтому я понятия не имею, что мне нужно исправить. Есть ли в моем журнале ошибка c Я здесь не вижу?
(Единичные тесты, которые не проходят, - -10 ^ -3 и -10 ^ -4)
EDIT- Для ясности здесь показано именно то, что отображается после отправки:
Test -10.0 -4
Test feedback: Your function did not return 0.0001
Test -10.0 -3
Test feedback: Your function did not return -0.001
Он не сообщает мне, что функция вернула, и я не могу увидеть, как проводятся модульные тесты. Настоящая проблема заключается в том, что когда я пытаюсь воспроизвести сбой, я получаю правильный результат (путем жесткого кодирования вызова функции Pow (-10.0, -4) и Pow (-10.0, -3))
EDIT 2- Решение было найдено ниже. Ошибка округления была виновата.