Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro SH

[Resolvido] Formula que calcula o numero de termos de uma PG

Recommended Posts

Prezados Colegas

 

Preciso de uma fórmula que calcula o numero de termos de uma Progressão Geométrica. Onde

 

Q : é a razão da PG ;

A1 : é o primeiro termo;

AN : é o último termo;

N : é o numero de termos

 

AN = A1 * Q elevado a (N-1)

 

 

 

O calculo feito no papel consiste em igualar as bases e trabalhar com os expoentes.

 

Para fazer uma fórmula no programa C++ eu devo isolar o termo que procuro e colocá-lo sozinho à esquerda do parêntese. Como posso fazer isto se o termo que procuro é um expoente?

 

 

Desde já agradeço

 

Leandro SH

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro leia os valores.

 

An, A1 e q.

 

Depois aplique a formula.

 

Qn-1 = An / A1

 

Agora voce precisa fatorar o resultado em função de q.

 

Por exemplo:

 

4 n-1 = 1024

 

Que número eleva 4 e tem como resultado 1024?

5 correto?

 

então:

 

n-1 = 5

n = 6

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade, é muito facil fazer assim porque as pessoas tem cérebro.

Num computador ele vai ter que usar logaritmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso é só pensar no que falei e desenvolver.

 

Que tal um loop dividindo 1024 por 4 no exemplo e usar um contador pra chegar a conslusão que n-1 = 5?

 

Kandrade, é muito facil fazer assim porque as pessoas tem cérebro.

Num computador ele vai ter que usar logaritmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Que tal um loop dividindo 1024 por 4 no exemplo e usar um contador pra chegar a conslusão que n-1 = 5?

 

Complexidade desnecessária.

 

#include <stdio.h>
#include <math.h>
int main() {
 int A1,An,Q;
 unsigned int N;

 scanf("%d %d %d",&An,&A1,&Q);
 N = (unsigned int) (1+log(An/A1)/log(Q));
 printf("\n%u\n",N);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Primeiro essa sala não é de C.

Segundo existem muitas soluções para um problema.

 

Primeiro: e daí que não é de C? Postei o código p/ mostrar.

Segundo: pode ser,mas fico sempre com a mais simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.