Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

Алгоритм Евклида

Как написать алгоритм Евклида в наилучшем виде на С++? Какие его применения вы знаете?


Ответ

Как насчёт такого варианта?
Рекурсивная версия.
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; } } }

Комментариев нет:

Отправить комментарий