| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 15:46:02
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Quantos dígitos zeros à direita tem o fatorial de 1 bilhão?
Por exemplo, 10! = 3628800 tem 2 zeros à direita, 77! = 1,4518309202828586963407078408631e+113 (ou melhor, 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000 tem 18 zeros à direita, 100! = 9,3326215443944152681699238856267e+157 tem 24 zeros à direita, etc.
(Dica: não é para calcular o fatorial de 1 bilhão diretamente, que não vai caber na sua máquina.)
Isso não é lição de casa. Só estou perguntando aqui para ver como é que vocês costumam resolver tais coisas.
This message was edited 1 time. Last update was at 02/10/2009 15:46:45
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 16:01:42
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Para quem quiser testar sua rotina, o fatorial de 1000000 tem 249998 zeros, o fatorial de 1000000000000 tem 249999999997 zeros e o fatorial de 3141592653590 tem 785398163387 zeros.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 16:24:54
|
jukkinha
Debugger
Membro desde: 02/05/2008 11:41:00
Mensagens: 66
Offline
|
run:
Numero de Zeros a Direita para 3141592653590: 785398163387
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 16:30:09
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Parabéns, é isso mesmo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:01:15
|
igor_jua
JavaEvangelist
![[Avatar]](/images/avatar/539a3ef6f2a61f175b30de2b736d45f1.jpg)
Membro desde: 03/12/2008 14:44:31
Mensagens: 377
Offline
|
Caros amigos, não seria muito mais simples converter o resultado do fatorial em uma String e sair perconrrendo a mesma e a cada 0 incrementar uma variavel?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:13:06
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
igor_jua wrote:
Caros amigos, não seria muito mais simples converter o resultado do fatorial em uma String e sair perconrrendo a mesma e a cada 0 incrementar uma variavel?
Experimente fazer isso com 1 bilhão. O fatorial de 1 bilhão tem quase 8,6 bilhões de algarismos, ou seja, não vai caber em nenhuma máquina. Isso tudo para você descobrir que ele tem apenas 249.999.998 zeros à direita.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:19:16
|
vitor lima
JavaBaby
![[Avatar]](/images/avatar/7d2bb55bb8d4a35025b15eb652920f3d.jpg)
Membro desde: 14/04/2009 09:16:59
Mensagens: 92
Offline
|
Calcular o fatorial de cem mil já demora bastante, imagina o de 1 bilhão ...
E o número 1.000.000.000! (fatorial de 1 bilhão) nem cabe em uma String ...
This message was edited 3 times. Last update was at 02/10/2009 17:29:02
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:25:10
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
1 bilhão != 1 milhão (ou você acha que o ganhador da mega-sena consegue pagar as dívidas da Previdência Social?)
O fatorial de 1 milhão, casualmente, tem 5565703 dígitos, e cabe em uma String. Agora o tal fatorial de 1 bilhão não cabe.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:31:40
|
vitor lima
JavaBaby
![[Avatar]](/images/avatar/7d2bb55bb8d4a35025b15eb652920f3d.jpg)
Membro desde: 14/04/2009 09:16:59
Mensagens: 92
Offline
|
É, tem toda razão, é bem diferente.
Mas já arrumei isto.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:31:47
|
bobmoe
GUJ Ranger
![[Avatar]](/images/avatar/9cc25407f209e031babdac7d3c520ccb.jpg)
Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline
|
o mais simples mesmo seria usar regex. por exemplo:
This message was edited 1 time. Last update was at 02/10/2009 17:32:00
|
BOB - Roberto Nogueira - bobmoe.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 17:47:14
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Ah, você queria contar quantos zeros existem no fatorial, não importando se estão à direita ou não. Nesse caso, o problema é mais complexo.
Digamos que eu queira saber quantos zeros existem em 30!
30! = 265252859812191058636308480000000
Para saber a quantidade de dígitos zero à direita, é só saber quantas vezes o número 10 divide o fatorial de n!.
Mas para saber se em uma determinada posição há um dígito zero, é um bocadinho mais complicado. Vou pensar a respeito.
265252859812191[0]586363[0]848[0000000]
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2009 22:32:15
|
bobmoe
GUJ Ranger
![[Avatar]](/images/avatar/9cc25407f209e031babdac7d3c520ccb.jpg)
Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline
|
entendi, mas nesse caso eu ainda trabalharia com string:
|
BOB - Roberto Nogueira - bobmoe.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/10/2009 14:58:10
|
igor_jua
JavaEvangelist
![[Avatar]](/images/avatar/539a3ef6f2a61f175b30de2b736d45f1.jpg)
Membro desde: 03/12/2008 14:44:31
Mensagens: 377
Offline
|
Concordo com o bob...
A solução seria trabalhar com String..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/10/2009 15:57:24
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
jukkinha já respondeu, a resposta tem uma fórmula fechada, não precisa calcular todos os elementos do fatorial para fazer a conta. Fora que já respondemos aqui no GUJ:
http://www.guj.com.br/posts/list/15/119727.java#648682
This message was edited 1 time. Last update was at 05/10/2009 15:58:32
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
|
|