Skip navigation.

kill -9 3620

...

Problem 16

, ,

Estos dias he estado trabajando en la resolucion de problemas del Proyecto Euler :smile:

Me llama la atencion el Problema 16:
2^15 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.

What is the sum of the digits of the number 2^1000?

Pues tenemos que sumar todos los digitos del resultado de 2^1000, no lo vi tan complicado y decidi hacerlo en C#, especificamente en mono.

Al momento de escribir:
resultado = Math.Pow(2,1000):

El resultado es:
1.07150860718627e+301

:eek: :confused: me dije ¿Como sumare ese numero? nervous despues de pensar un poco cambie a Perl como lenguaje de programacion.

use strict;
use warnings;

my $res = 2**1000;
my $suma = 0;
my $char = "";
my  @txt = split(//,sprintf("%f",$res));

foreach $char (@txt){
  $suma = $suma + $char;
}

print $suma,"\n";

Donde:
my $res = 2**1000;--> hace lo mismo que Math.Pow(2,1000)

my @txt = split(//,sprintf("%f",$res)); --> generamos una arreglo de tipo char del resultado.

sprintf("%f",$res) --> esta linea de genera:

10715086071862673209484250490600018
10561404811705533607443750388370351
05112493612249319837881569585812759
46729175531468251871452856923140435
98457757469857480393456777482423098
54210746050623711418779541821530464
74983581941267398767559165543946077
06291457119647768654216766042983165
2624386837205668069376.000000

como vemos es muy diferente a 1.07150860718627e+301 y con el $suma = $suma + $char; sabremos la suma de todos los numeros del arreglo :Dla cual es 1366.

YO TAMBIEN TE QUIERORECASPITAS

Comments

Anonymous 17. March 2009, 04:22

David Moreno writes:

Me encantan estos problemas. Y aunque me duela muchísimo aceptarlo, Ruby es muuuuuucho mejor para este tipo de cosas que Perl:

>> tot = 0; (2**1000).to_s.split(//).each do |x| tot += x.to_i; end; tot
=> 1366

Saludos!

http://damog.net/

monykah 20. March 2009, 03:43

O.o mi no entender XD, jaja, mi novio es programador y he visto lo que hace y la verdad hasta me duele la cabeza de ver tanto numerito, signos y etc, jeje...Soy mala para este tipo de cosas XD

Saludines...

hreyes 20. March 2009, 06:27

jejeje ya me imagino cuando te platica de las cosas que hace :lol: siempre encuentro divertido explicar a otros lo que hago, pero no me entienden seguramente he de ser muy malo explicando las cosas.

Que este bien :smile:

Anonymous 8. July 2009, 06:42

Anonimo writes:

en python:

r = 2**1000
s = str(r)

suma = 0
for i in s:
suma = suma + int(i)

print suma


How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies

Download Opera, the fastest and most secure browser