Все готово и отлично работает для моей программы. Мне пришлось написать рекурсивную функцию GCD. Однако я использовал две функции gcdRecursive и gcd. Могу ли я конденсировать этот код в одну функцию, поэтому мне не нужна функция gcd в моем коде ниже? Или мой код правильный, как есть, и обе функции необходимы.Является ли эта рекурсивная функция GCD правильной?
void gcdRecursive(int *x, int *y, int i){
if (i >= 1) {
if (*x % i == 0 && *y % i == 0) {
printf("The GCD of %d and %d is %d", *x, *y, i);
}
else {
gcdRecursive(x, y, i - 1);
}
}
}
void gcd(int *x, int *y){
getValuesForGCD(x, y);
gcdRecursive(x, y, *x);
}
Вы 'Функция gcd' обертка посвящено взаимодействием с входной средой: вся работа происходит в 'gcdRecursive'. Он уже не нужен для вычисления наибольших общих делителей. Конечно, программы, как правило, нуждаются в некоторых способах ввода-вывода, чтобы быть полезными, но это не зависит от того, что вы делаете. – dmckee
Пожалуйста, прекратите редактирование спама, чтобы ответить на вопрос. –