|
|
|
|||||||
| Знаете ли Вы, что ... | |
| ...инструкция по установке аватара описана в Правилах форума. | |
| << Предыдущий совет - Случайный совет - Следующий совет >> | |
| Pascal, Delphi & Builder Вопросы программирования касающиеся Pascal и Delphi |
| Ответить |
|
|
Опции темы | Опции просмотра |
|
|
#73 |
VITUS |
Пара красивых и быстрых алгоритмов)
Код:
//алгоритм Евклида через остатки
long Nod(long a, long b)
{
while (a && b)
if (a >= b)
a %= b;
else
b %= a;
return a | b;
}
// Алгоритм Евклида через разности
long Nod(long a, long b)
{
while (a && b)
if (a >= b)
a -= b;
else
b -= a;
return a | b;
}
Код:
int Nod( int a, int b )
{
while( b^=a^=b^=a%=b );
return a;
}
__________________
Почему в конце денег остается еще так много месяца? Последний раз редактировалось Vitaliy Fioktistov; 20.04.2013 в 19:28. |
|
|
Ответить |
|
|
#74 | |
![]() |
Цитата:
А непонятный не разобрал.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим. |
|
|
|
Ответить |
|
|
#75 | |
ex-wild_JohnСупермодератор |
Цитата:
Я предпочитаю запускать функцию с заранее гарантированным неравенством a>=b и не париться с проверками каждую итерацию - проще проверить условие перед вводом данных в функцию.
__________________
Герман - это не имя, это особое состояние души (Джим Анджер) |
|
|
|
Ответить |
|
|
#77 | |
ex-wild_JohnСупермодератор |
Цитата:
Если использовать рекурсию вместо цикла, будет чуть попроще в решении. Однако, рекурсия несёт и свои минусы.
__________________
Герман - это не имя, это особое состояние души (Джим Анджер) |
|
|
|
Ответить |
|
"+" от:
|
| Реклама и уведомления | |
|
|
#79 | |
![]() |
Цитата:
Также красиво в Паскале не написать, но будет похоже. Я пишу в нотации сумм, а не xor, чтобы был "как бы" другой алгоритм )Код:
function NOD(a,b: integer):integer;
var a,b,:integer;
Begin
Repeat
a:=a mod b;
a:=a+b;
b:=a-b;
a:=a-b;
Until b=0;
NOD:=a;
End;
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим. Последний раз редактировалось Nadir Zaitov; 22.04.2013 в 18:33. |
|
|
|
Ответить |
|
"+" от:
|
|