Составить рекурсивную функцию вычисления НОД - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны натуральные числа n и m; Найти НОД(n,m). составить рекурсивную функцию вычисления НОД, основанную на соотношении НОД(n, m)=НОД(m, r), где r- остаток от деления n на m(n>m)

Решение задачи: «Составить рекурсивную функцию вычисления НОД»

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int gcd(int, int);
  5.  
  6. int main(void)
  7. {
  8.    int n, m;
  9.    scanf("%d%d", &n, &m);
  10.    printf("GCD=%d", gcd(n, m));
  11.    getch();
  12.    return 0;
  13. }
  14.  
  15. int gcd(int a, int b)
  16. {
  17.    if(a%b==0 && b%10==0)
  18.       return b/2;
  19.    if(a%b==0)
  20.       return b;
  21.    else
  22.       return gcd(a, a%b);
  23. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с I/O и константами.
  2. Объявляем функцию gcd(int, int), которая будет вычислять НОД двух целых чисел.
  3. В функции main() считываем два целых числа с помощью функции scanf() и сохраняем их в переменные n и m.
  4. Вызываем функцию gcd(n, m) и выводим результат на экран с помощью функции printf().
  5. Ждем нажатия клавиши с помощью функции getch() и завершаем работу программы.
  6. В функции gcd(int, int) выполняем проверку на базовый случай: если a%b==0 и b%10==0, то возвращаем b/2.
  7. Если a%b==0, то возвращаем b.
  8. Иначе, рекурсивно вызываем функцию gcd(a, a%b) и возвращаем результат.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы