Премини към съдържанието
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

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


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

Това учител по информатика за 11 клас го е писал в математическа гимназия.

 

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


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

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

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

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

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

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

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


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

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

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

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

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

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

Вход

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

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.