Привет! Я описываю свой опыт написания рекурсивной функции для нахождения наибольшего общего делителя (НОД) двух чисел.
Итак, первым шагом было объявление функции, которая будет использовать рекурсию. Я назвал ее ″findGCD″. Моя функция принимает два параметра ⎻ первое число (обозначим его как ″num1″) и второе число (обозначим его как ″num2″).
Далее я задал условие внутри функции. Если ″num2″ равно 0, то функция вернет ″num1″ как наибольший общий делитель.Однако, если ″num2″ не равно 0, то нужно продолжать нахождение НОДа. В этом случае я использую рекурсию, вызывая функцию ″findGCD″ с аргументами ″num2″ и остатком от деления ″num1″ на ″num2″.Вот как выглядит код функции⁚
python
def findGCD(num1, num2)⁚
if num2 0⁚
return num1
else⁚
return findGCD(num2, num1 % num2)
Теперь давай-ка протестируем эту функцию на примере, который ты предоставил.python
num1 int(input(″Введите первое число⁚ ″))
num2 int(input(″Введите второе число⁚ ″))
gcd findGCD(num1, num2)
print(″НОД⁚″, gcd)
После запуска программы, она запросит у тебя два числа. В нашем примере, первое число ౼ 2700, а второе ⎻ 630. После ввода, программа вызовет функцию ″findGCD″ с этими числами и распечатает результат ⎻ НОД, равный 90.
Я надеюсь, что мой опыт поможет и тебе написать свою рекурсивную функцию для нахождения НОДа. Удачи!