Я пытаюсь найти e в степени x. Пожалуйста, укажите, что может быть не так с моей текущей реализацией, а не просто предлагайте новые/эффективные решения (я могу найти много в сети). Кажется, есть логическая ошибка или ошибка времени выполнения, отладка ничего не показывает. Заранее спасибо!
включена библиотека cmath, программа компилируется нормально.. останавливается при запуске
double find_e_power_x(int x){
int i = 1, j = 1, count = 1, accuracy = 15;
double xd = static_cast<double>(x); //pow takes double args
double jd = static_cast<double>(j);
double epx = 1.0;
while ( count < accuracy ){
while ( ++i && ++j) {
epx += ( pow(xd,jd) / fact(i) ); //static_cast
count++;
}
}
return epx;
}
В ответ на комментарии (указывающие на мой бесконечный внутренний цикл),
ИЗМЕНИТЬ:
while ( count < accuracy ){
epx += ( pow(xd,jd) / fact(i) ); //static_cast
count++;
i++;
j++;
}
input =3 ответ неверный, хотя он дает результат как 3.15485
ниже окончательная версия работает нормально
i/p = 4
o/p = 54.8278
double find_e_power_x(int x){
int i = 1, count = 1, accuracy = 15;
double xd = static_cast<double>(x); //pow takes double args
double id = static_cast<double>(i);
double epx = 1.0;
while ( count < accuracy ){
epx += ( pow(xd,id) / fact(i) ); //static_cast
++count;
++id;
++i;
}
return epx;
}
exp()
вcmath
? - person paxdiablo   schedule 07.05.2013pow
и т. д. - person Suvarna Pattayil   schedule 07.05.2013pow
вполне может звонить самомуexp
. - person Mike Seymour   schedule 07.05.2013