Объясните, что выполняет данная строка в функции НОК - C (СИ)
Формулировка задачи:
Мне в программе нужно было найти НОК заданных чисел. Нашел функцию подсчета для вычисления НОК(алгоритм Евклида) . Вот в ней такая строчка : long int nod (int x, int y) { return (x?nod(y%x,x):y); } . Можете описать действия после слова "return" . Я прочитал и узнал что это тернарная операция, на подобии if ... else , но не могу понять как выполняется это выражение. Спасибо заранее за помощь.
Решение задачи: «Объясните, что выполняет данная строка в функции НОК»
textual
Листинг программы
if (x!=0) return nod(y%x,x); else return y;
Объяснение кода листинга программы
x
- это входное значение, которое не равно нулю.nod(y%x,x)
- это вызов функцииnod
с аргументамиy%x
иx
.y%x
- это операция модуля, которая возвращает остаток от деленияy
наx
.x
- это значение, которое передается в функциюnod
в качестве второго аргумента.- Функция
nod
не определена в данном контексте, поэтому ее поведение неизвестно. - Если
x
равно нулю, то выполняется альтернативный блок кода. y
- это входное значение, которое возвращается из функции в случае, еслиx
равно нулю.- Возвращаемое значение функции будет
y
, еслиx
не равно нулю, илиnod(y%x,x)
, еслиx
равно нулю.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д