Найти НОД для одномерного массива, используя алгоритм Евклида - C (СИ)
Формулировка задачи:
Вопрос в том как найти НОД для одномерного массива, используя алгоритм Евклида?
Решение задачи: «Найти НОД для одномерного массива, используя алгоритм Евклида»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- inline int GCD(int __1, int __2)
- {
- __1 = abs(__1);
- __2 = abs(__2);
- int buf;
- if(__1 == 0 && __2 == 0)
- return 1;
- if(__1 == 0)
- return __2;
- if(__2 == 0)
- return __1;
- while(__2)
- {
- buf = __1 % __2; __1 = __2; __2 = buf;
- }
- return __1;
- }
- int main(void)
- {
- int arr_size, i, result = 0, tmp;
- printf("Array size: ");
- if(scanf("%d", &arr_size) != 1)
- {
- printf("Incorrect input!\n");
- return -1;
- }
- for(i = 0; i < arr_size; i++)
- {
- printf("arr[%d]=", i);
- if(scanf("%d", &tmp) != 1)
- {
- printf("Incorrect input!\n");
- return -1;
- }
- if(!result)
- result = tmp;
- else
- result = GCD(result, tmp);
- }
- printf("GCD = %d\n", result);
- return 0;
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция GCD, которая принимает два целых числа и возвращает их НОД
- В функции main считывается размер массива и инициализируется переменная result значением 0
- Для каждого элемента массива считывается его значение и обновляется переменная result, если текущий элемент является первым ненулевым числом
- Если ввод некорректен, выводится сообщение об ошибке и возвращается -1
- Выводится сообщение о нахождении НОД и его значение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д