Премини към съдържанието
nadal4o

Задача C++, НОД

    Препоръчан отговор


    Здравейте, моля някой ако може да напише срещу редовете коментари, за да може програмката да бъде обяснена, нейния алгоритъм :)

     

    #include<iostream>
    using namespace std;
    int p,q;

    int gcd(int a, int b)
    {
    int d=2, mind, multi=1;
    if(a<b)
         mind=a;
         else
         mind=b;
    while(d<=mind)
    {
         if(a%d==0 && b%d==0)
         {
         a=a/d;
         b=b/d;
         multi=multi*d
         }
        else
        d++
    }
    return multi;
    }

    int main()
    {
    cin>>p>>q;
    cout<<gcd(p,q);
    return 0;
    }   

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    И защо толкова сложно като може и по-просто?

    #include<iostream>
    
    using namespace std;
    
    int gcd(int a, int b)
    {
        while(b)
        {
            int t=b;
            b=a%b;
            a=t;
        }
        return a;
    }
    
    int main()
    {
        int p,q;
        cin>>p>>q;
        cout<<gcd(p,q);
        return 0;
    }

    или пък само с изваждане

    int gcd(int a, int b)
    {
        while(а!=b)
        {
            if (a<b) b-=a;
            else a-=b;
        }
        return a;
    }

     

    Редактирано от ined (преглед на промените)
    • Харесва ми 1

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Ученето на програмен език (както и на всичко останало) не е като използването му за конкретна цел. В тази задача се прави обратното на написване на програмка. Да обясниш в коментара - кой елемент какво прави.

    Ако погледнете разните математически задачи - "От точка А се движил автомобил ..., пък от т. Б, срещу първия се движи втори ..." много вероятно е да си зададете въпроса - тия къде са тръгнали да обикалят? И гориво хабят, и замърсяват, а никаква работа не вършат.

    преди 3 часа, nadal4o написа:

    Здравейте, моля някой ако може да напише срещу редовете коментари, за да може програмката да бъде обяснена, нейния алгоритъм :)

    Ако сега някой ти свърши работата - как ще я караш по-нататък?

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Регистрирайте се или влезете в профила си за да коментирате

    Трябва да имате регистрация за да може да коментирате това

    Регистрирайте се

    Създайте нова регистрация в нашия форум. Лесно е!

    Нова регистрация

    Вход

    Имате регистрация? Влезте от тук.

    Вход


    ×

    Информация

    Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.