lunes, 20 de febrero de 2012

Problema 2 (fuente: projecteuler)

Enunciado: Hallar la suma de los términos menores de 4.000.000 que sean pertenecientes a la serie de fibonacci y sean números pares.
La serie de fibonacci es de la siguiente forma: 1,2,3,5,8,13,21,34,55,89,144...

Solución: Si desarrollamos la serie, vemos que los números pares se suceden cada tres números y en eso me baso para resolver este problema.

SOLUCION C++:
#include <iostream>
#include <stdio.h>
#include <cstdlib>
using namespace std;

#define MAX 4000000

int main(){
    int suma=0;
    int numUno=1;
    int numDos=1;
    int numAux;
    numAux=numUno+numDos;
    
    while(numAux<MAX){
                      suma+=numAux;
                      numUno=numDos+numAux;
                      numDos=numAux+numUno;
                      numAux=numUno+numDos;
                      }
    cout<<"La suma es: "<<suma<<endl;
    system("pause");
    return EXIT_SUCCESS;
}

//SOLUCION: 4613732

SOLUCION JAVA:
public class Problema2 {

    public static void main(String[] args){
     int limite=4000000;
     int numUno=1;
     int numDos=1;
     int numAux;
     int suma=0;
     numAux=numUno+numDos;
     
     while(numAux<limite){
         suma+=numAux;
         numUno=numDos+numAux;
         numDos=numAux+numUno;
         numAux=numUno+numDos;
         }
     System.out.println("La suma es: ");
     System.out.println(suma);
    }
//SOLUCION: 4613732

Problema 1 (fuente: Project Euler)

Enunciado: Si por ejemplo tomamos, los 10 primeros números (0-10), y observamos los múltiplos de 3 o de 5, nos daría esta lista: 3, 5, 6 y 9, y la suma de estos sería 23.
El problema nos pide, hallar la suma de los múltiplos de 3 o de 5 en una lista que vaya de 0 a 1000, y obtener su suma.

SOLUCIÓN C++:
#include <iostream>
#include <stdio.h>
#include <cstdlib>
using namespace std;


int main(){
    int suma=0;
    
    for(int i=0;i<1000;i++){
            if(i%3==0 || i%5==0){
                      suma=i+suma;
                      }
                      }
                      
            cout<<"Suma"<<suma<<endl;
            cin.get();
            return EXIT_SUCCESS;
}

SOLUCION EN JAVA:
public class Problema1 {

    public static void main(String[] args) {
     int suma=0;
     for(int i=0;i<1000;i++){
         if(i%3==0 || i%5==0){
             suma = suma+i;
         }
         }
     System.out.print("La suma es: ");
     System.out.print(suma);
     }
}
SOLUCION: 233168

Hello World!

Blog dedicado a la resolución de problemas matemáticos y de programación.
Los problemas serán extraidos de diferentes sitios web y diversas fuentes, tales como problemas propuestos en el Google Code Jam, y otros concursos similares, así como los extraidos de Project Euler, una gran fuente de problemas y comunidad online que me parece muy interesante (projecteuler.net).
Los problemas intentaré resolverlos primeramente en C++ y en JAVA, para ello usaré DevC++ , y NetBeans para ambos lenguajes respectivamente.
Colgaré el código y el enunciado del problema, una vez consiga resolverlo, pero poco a poco, que todavía algunos me cuestan bastante, jeje, que soy principiante aún. 
Sin más, un saludo, y a programar se ha dicho :)