Здравствуйте! Передо мной стоит следующая задача: написать на C++ метод, вычисляющий НОД для 2 чисел типа int ИЛИ double(класс шаблонный).
Взял алгоритм Евклида с небольшими изменениями:
template <typename T>
T rational<T>::nod(T a, T b) {
if (a == b) {
return a;
}
if (a > b) {
T tmp = a;
a = b;
b = tmp;
}
return nod(a, b - a);
}
Работает при:
rational<double> rat(5, 10);//рациональная дробь 5/10
rat.nod(5, 10);//вычисление НОД 5 и 10
И не работает при:
rational<double> rat(5.1, 10);//рациональная дробь 5/10
rat.nod(5.1, 10);//вычисление НОД 5.1 и 10
Вопрос: почему так происходит, и как это исправить, чтобы работало в обоих вариантах? Заранее спасибо за ответы!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В общем, вот в чем суть вопроса: есть файл, который я считываю и обрабатываю так, как надо по заданиюНо если в него вставить пустые строки, то выводит...
Задание - В цикле с предусловием пользователем вводятся числа до тех пор, пока их сумма не превысит 100Определить количество введенных четных...
Доброго времени сутокЕсть класс, есть менюшка для работы с классом (добавление, вывод объектов класса, удаление) Каким образом организовать...
Например, есть QMainWindow, где находится форма входа (логин, пароль)При нажатии открывается еще один QMainWindow, уже сама программа, а старое окно закрывается...