sábado, 1 de enero de 2011

El regreso...

Estos últimos meses no he realizado ninguna entrada al blog y es que entre la escuela, trabajo, familia y amigos estos meses han sido una locura. Entre exámenes, certificaciones, vacaciones, fiestas y mucho trabajo. Pero bueno, que mejor manera de iniciar el año que realizando una nueva entrada a mi blog olvidado :)

Como propósito en este año espero por lo menos tener dos entradas por mes y así enriquecer, compartir y hasta ayudarnos en problemas que tengamos en cuanto a programación o configuración de instalaciones.
Este año pinta taaaan bien!!! :) el año lo terminé cerrando un proyecto muy grande dónde se utiliza tecnología de Oracle y que en próximas entradas comentaré sobre éstas, ya que son nuevas y a mi parecer son muy buenas y facilitan la vida.


Dadas las fechas navideñas en la consultora donde trabajo nuestro jefe convocó a un concurso para ganar un póster de Los Simpsons. Y aunque no soy muy fan de ellos decidí participar.
El concurso es resolver de la página http://projecteuler.net/ los primeros 5 problemas. Ayer antes de festejar el fin de año me puse a contestarlos y llevo dos problemas resueltos.
Los resolví con Java, seguramente los algoritmos que desarrollé no son los más eficientes pero los resultados son correctos. Si tienen alguna sugerencia de cómo hacer más eficaces estos programas, se aceptan sugerencias.
El problema número uno dice:

  • If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.

public static void problema1(){
  ArrayList< integer > numeros= new ArrayList< integer >(); 
  int suma=0;
  for(int i=1;i < 1000; i++){
   if((i%3)==0 || (i%5==0)){
    numeros.add(i);
    suma+=numeros.get(i);
   }
  }
 }
El resultado es: 233168


El problema dos dice:

  • Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
    1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
    By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
public static int fib(int n) {
         if (n <= 1) 
          return n;
         else 
          return fib(n-1) + fib(n-2);
 }
        public static void problema2(){
  ArrayList< integer > numeros= new ArrayList< integer >(); 
  for(int i=0; i<34; i++)
   numeros.add(fib(i));
  int suma=0;
  for(int i=0; i < numeros.size();i++)
   if(numeros.get(i)%2!=0)
    suma+=numeros.get(i);
  System.out.println("La suma es: " +suma);
 }
 
Así el resultado es: 4613732


Espero que este tipo de problemas sean de su agrado y continuar resolviendo los problemas que se encuentran en esta página.

Saludos y muy buen inicio de año! Pronto agregaré las respuestas de los 3 que me hacen falta :P

No hay comentarios:

Publicar un comentario