Problem 16

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

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.

Anuncios

4 comentarios en “Problem 16

  1. 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=> 1366Saludos!http://damog.net/

  2. 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 XDSaludines…

  3. 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 :)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s