Составить рекурсивную функцию вычисления НОД - C (СИ)
Формулировка задачи:
Даны натуральные числа n и m; Найти НОД(n,m). составить рекурсивную функцию вычисления НОД, основанную на соотношении НОД(n, m)=НОД(m, r), где r- остаток от деления n на m(n>m)
Решение задачи: «Составить рекурсивную функцию вычисления НОД»
textual
Листинг программы
#include<stdio.h> #include<conio.h> int gcd(int, int); int main(void) { int n, m; scanf("%d%d", &n, &m); printf("GCD=%d", gcd(n, m)); getch(); return 0; } int gcd(int a, int b) { if(a%b==0 && b%10==0) return b/2; if(a%b==0) return b; else return gcd(a, a%b); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и константами.
- Объявляем функцию gcd(int, int), которая будет вычислять НОД двух целых чисел.
- В функции main() считываем два целых числа с помощью функции scanf() и сохраняем их в переменные n и m.
- Вызываем функцию gcd(n, m) и выводим результат на экран с помощью функции printf().
- Ждем нажатия клавиши с помощью функции getch() и завершаем работу программы.
- В функции gcd(int, int) выполняем проверку на базовый случай: если a%b==0 и b%10==0, то возвращаем b/2.
- Если a%b==0, то возвращаем b.
- Иначе, рекурсивно вызываем функцию gcd(a, a%b) и возвращаем результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д