Ir para conteúdo

POWERED BY:

Arquivado

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

Cauzuca

Fatorial usando lista encadeada

Recommended Posts

beleza pessoal!

É o seguinte, estou estudando C por minha conta e, no momento, estou treinando com ponteiros. Pesquisando sobre lista encadeada eu vi uma questão que me deixou intrigada, dizia pra calcular o fatorial de um número grande usando lista encadeada, mas não tinha resposta, então não sei se funciona msm. Eu consegui fazer progs de soma com números grandes, inverti os números, coloquei-os numa lista encadeada e realizei as operações... Funcionou perfeitamente. Agora, fazer fatorial de um número grande... não entendi como. Será q alguém pode dar uma luz, só uma idéia de como funciona o esquema, se é q é possível isso...

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... não sei... só sei q não é usando recursividade pq a memória fica sobrecarregada...

 

No prog q eu fiz de soma, não usei pilha... eu fui colocando os valores em outra lista. Por isso q não estou conseguindo visualizar um jeito de fazer.. pq eu não estou aprendendo com professor, estou me intrometendo msm e não sei o q posso usar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola entaum ja lista encadeada fai o sequinte digamos que o numero do fatorial que tu quer é 100!

ta num é grande mas o raciocinio é o mesmo

na primeira celula você coloca o "100" ja na segunda vai ser "100-1" i na terceira "100-2" pode ve que o numero que

ta subtraindo o 100 vai pulando de 1 em 1 ate chega no 1 (claro que tu vai ter que tratar para nao chegar no 0)

feito isso é so percorrer a lista e ir multiplicando as celulas.

 

|100| -> |99| -> |98| -> |97| -> |96| -> ..... ficando assim a lista

 

eu acho que era esse sua duvida CAZUZA

espero ter ajudado =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow, valeu aê pela dica, mas a dúvida não era bem essa... era na hora de calcular, mas hj pensei numa solução, só não tive tempo de colocar em prática... mas amanhã vou testar e aviso aqui se deu certo. Só pra esclarecer, a minha idéia é q essa questão é pra exibir o resultado da seguinte maneira: se o resultado de um fatorial for, sei lá, 7684034199932048301, eu acho q a parada é cada algarismo ocupar uma "casa" da lista. Tipo, no prog ficaria: cab->7-> 6->8->4->0->3->4->1->9->9->9...->NULL, daí, na hora de exibir na tela, vai ficar como se fosse um número representado por uma variável apenas. Eu mando imprimir a lista e pronto! 7684034199932048301, não vai sobrecarregar... =P

 

Vlw gente, depois volto aqui...

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.