0
zyto
29.05.08
✎
22:25
|
Дано: несколько чисел (как целых, так и дробных), нужно найти наибольший общий делитель.
Никто не заморачивался? Мож у кого готовый есть для 8.х?
Или алгоритмик подкиньте плз, а то школа давно была, подзабылось уже...
|
|
1
SnarkHunter
29.05.08
✎
22:41
|
Ничего эффективнее алгоритма Евклида не придумали... Кстати, понятие НОД определено только для рациональных чисел, так что надо смотреть что там за дробные у тебя...
|
|
2
zyto
29.05.08
✎
22:45
|
Дробные = 0.1, 0,33 и т.д.
Вот накалякал, вроде работает:
ТЗЧисла.Сортировать("Число");
Пока ТЗЧисла.Итог("Число")/ТЗЧисла.Количество()<>ТЗЧисла[0].Число Цикл
ТекЧисло = ТЗЧИсла[0].Число;
Для Каждого Стр Из ТЗЧисла Цикл
Если Стр.Число>ТекЧисло Тогда
Стр.Число = Стр.Число-ТекЧисло;
КонецЕсли;
КонецЦикла;
ТЗЧисла.Сортировать("Число");
КонецЦикла;
Сообщить("НОД = "+СокрЛП(ТЗЧисла[0].Число));
ТЗЧисла - это таблица значений с колонкой Число, соответственно с типом число.
|
|