Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Februarie 17, 2014, 14:50:01
Eu am rezolvat astfel problema..... cu toate ca rezultatele imi dau primesc decat 25 de puncte

#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int main()
{
    int p,nr2,nr5,nr,x,k,minim;
    f>>p;
    nr2=0;
    nr5=0;
    nr=0;
    k=2;
    while(nr<p)
    {
        x=k;
        while(x%2==0)
        {
            nr2++;
            x=x/2;
        }
        while(x%5==0)
        {
            nr5++;
            x=x/5;
        }
        if(nr2<nr5) minim=nr2;
        else minim=nr5;
        nr=nr+minim;
        nr2=nr2-minim;
        nr5=nr5-minim;
        k++;
    }
    k--;
    if(nr==p)
        g<<k;
    else g<<"-1";
    return 0;
}

Am probleme cu timpul. Ma poate ajuta cineva??

2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Februarie 12, 2014, 15:00:53
Eu am rezolvat astfel problema..... cu toate ca rezultatele imi dau primesc decat 25 de puncte

#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int main()
{
    int p,nr2,nr5,nr,x,k,minim;
    f>>p;
    nr2=0;
    nr5=0;
    nr=0;
    k=2;
    while(nr<p)
    {
        x=k;
        while(x%2==0)
        {
            nr2++;
            x=x/2;
        }
        while(x%5==0)
        {
            nr5++;
            x=x/5;
        }
        if(nr2<nr5) minim=nr2;
        else minim=nr5;
        nr=nr+minim;
        nr2=nr2-minim;
        nr5=nr5-minim;
        k++;
    }
    k--;
    if(nr==p)
        g<<k;
    else g<<"-1";
    return 0;
}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines