Составить рекурсивную функцию вычисления НОД - 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) и возвращаем результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д