double eleva(double x, int p) { double r = 1; while (p >= 1) { r *= x; p--; } return r; } int fatorial(int x) { int i, f = 1; for (i = 1; i <= x; ++i) { f *= i; } return f; } double meu_exp(double x) { double e=1; int i; for (i = 1; i < TERMOS; ++i) e += eleva(x,i)/fatorial(i); return e; }Existe uma ineficiência óbvia nessa função, que faz com que ela use TERMOS2 operações quando precisaria só de TERMOS operações. Você consegue me dizer qual é? Consegue reescrever o programa para ser mais rápido? (dica: repare que fatorial(x) = x*fatorial(x-1) e eleva(x,p) = x*eleva(x,p-1))
Date: 2010-08-29 18:56:25 BRT
HTML generated by org-mode 6.21b in emacs 23