Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- double absolute(double x)
- {
- if(x >= 0)
- return x;
- else
- return -x;
- }
- double pot(double base, int expoente)
- {
- double pot = 1;
- int k;
- for(k = 1; k <= expoente; ++k)
- pot *= base;
- return pot;
- }
- int menor(int x, int y)
- {
- if(x <= y)
- return x;
- else
- return y;
- }
- int serie1()
- {
- //double resposta = 0.785398163;
- int n = 0;
- double termo = 0;
- double soma = 0;
- do
- {
- termo = 4*pot(-1, n)/(2*n + 1);
- soma += termo;
- ++n;
- }while(absolute(termo) >= 0.0001);
- //na serie 1 podemos consider apenas uma precisão de 0.0001 para mostrar que ela é a menos eficiente
- //visto que, mesmo nessa precisao, precisa de mais ciclos que as outras.
- //**precisões maiores tornam o processo lento demais
- return n;
- }
- int serie2()
- {
- int n = 0;
- double termo = 0;
- double soma = 0;
- do
- {
- termo = 4*((double)2/((4*n +1)*(4*n + 3)));
- soma += termo;
- ++n;
- }while(absolute(termo) >= 1e-8);
- return n;
- }
- int serie3()
- {
- int n = 0;
- int x = 2;
- double soma = 3;
- double termo = 0;
- do
- {
- termo = (pot(-1, n)*4)/((x)*(x+1)*(x+2));
- soma += termo;
- ++n;
- x += 2;
- }while(absolute(termo) >= 1e-8);
- return n;
- }
- int main()
- {
- int s1 = serie1();
- int s2 = serie2();
- int s3 = serie3();
- printf("serie 1: %ld\nserie 2: %ld\nserie 3: %ld\n", s1, s2, s3);
- int rapida = menor(s3,menor(s2,s1));
- if(rapida == s3)
- printf("logo vemos que a serie 3 eh a mais rapida, precisando de apenas %ld ciclos.\n" ,rapida);
- else if(rapida == s2)
- printf("logo vemos que a serie 2 eh a mais rapida, precisando de apenas %ld ciclos.\n" ,rapida);
- else if(rapida == s1)
- printf("logo vemos que a serie 1 eh a mais rapida, precisando de apenas %ld ciclos.\n" ,rapida);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement