viernes, 10 de febrero de 2012

Project Euler 17

Uff me costo gg resolcer este ejer pq mm no se Ingles pero gracias a yahoo. Espero q sea de utilidad, se puede mejorar mas :)
#include <iostream≶
using namespace std;
int main()
{
    int fasi[21]= {3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8};
    int mayor[10]= {6,6,5,5,5,7,6,6};
    int thousand=11,hundred=7;
    int cons=0,po=0,po2=0;
    int total=0,i=0,nine=18,y=3;
    bool sw=true,sw2=false;
    for(int j=1; j<1000; j++)
    {
        if(j>=nine&&j%10==0)
        {
            i=0;
            sw=false;
            if(j%100==0)
            {
                sw2=true;
                sw=true;
                nine+=100;
                total+=fasi[po2]+hundred;
                cons=fasi[po2]+hundred+y;
                po2++;
                po=0;
            }
            else
            {
                if(sw2)
                {
                    cons=fasi[po2-1]+hundred+y+mayor[po];
                }
                else
                {
                    cons=mayor[po];
                }
                total+=cons;
                po++;
            }
        }
        else
        {
            total+=cons+fasi[i];
            if(sw)
            {
                i++;
            }
            else
            {
                if(i<=10)
                    i++;
                else
                    i=0;
            }
        }
    }
    cout<<(total+thousand)<<endl;
    return 0;
}

No hay comentarios:

Publicar un comentario