Как написать алгоритм Евклида в наилучшем виде на С++? Какие его применения вы знаете?
Ответ
Как насчёт такого варианта?
Рекурсивная версия.
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
Итеративная версия.
int gcd(int a, int b) {
int t;
while (b != 0) {
t = b;
b = a % b;
a = t;
}
return a;
}
Зацикленная версия.
int gcd(int a, int b)
{
while(true)
{
a = a%b;
if(a==0)
{
return b;
}
b = b%a;
if(b==0)
{
return a;
}
}
}
Комментариев нет:
Отправить комментарий