Алгоритм Евклида. Нужно найти ошибку - C#

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

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

Проблема заключается в том, что при нахождении НОД для отрицательных значений, программа выдаёт отрицательный НОД. Как отладить, чтобы такого не было?
public int gcd(int a, int b)
        {
            if (b == 0)
                return a;
            else
                return gcd(b, a % b);
        }
private void btn1_Click_1(object sender, RoutedEventArgs e)
        {
            int a = Convert.ToInt32(tbA1.Text);
            int b = Convert.ToInt32(tbB1.Text);
            tbOut1.Text = gcd(a, b).ToString();
        }

Решение задачи: «Алгоритм Евклида. Нужно найти ошибку»

textual
Листинг программы
public int gcd(int a, int b)
        {
            if (b == 0)
                return Math.Abs(a);
            else
                return gcd(b, a % b);
        }
private void btn1_Click_1(object sender, RoutedEventArgs e)
        {
            int a = Convert.ToInt32(tbA1.Text);
            int b = Convert.ToInt32(tbB1.Text);
            tbOut1.Text = gcd(a, b).ToString();
        }

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

14   голосов , оценка 3.929 из 5
Похожие ответы