Cauzuca 0 Denunciar post Postado Abril 20, 2008 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
darkchrono 0 Denunciar post Postado Abril 20, 2008 tbm nao sei como fazer...(eu acho) mas deve ser usando pilha né??? Compartilhar este post Link para o post Compartilhar em outros sites
Cauzuca 0 Denunciar post Postado Abril 20, 2008 É... 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
paulloal 0 Denunciar post Postado Abril 21, 2008 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
Cauzuca 0 Denunciar post Postado Abril 22, 2008 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