我在计算最大公约数[C#with VS 2012]时遇到问题

时间:2013-09-07 06:08:49

标签: c# visual-studio-2012 greatest-common-divisor

我必须在两个文本框中写两个不同的数字,并用一个按钮计算GCD,但是当我运行它时,按钮什么都不做。

            int x = Convert.ToInt16(txtNum1.Text);
            int y = Convert.ToInt16(txtNum2.Text);

            int num1, num2;
            int residuo;
            if (x < y)
            {
                num1 = y;
                num2 = x;
            }
            else
            {
                num1 = x;
                num2 = y;
            }
            do
            {
                residuo = num1 % num2;

                if (residuo == 0)
                {
                    txtMCD.Text = num2.ToString();
                }
                else
                {
                    num1 = num2;
                    num2 = residuo;
                }      
            } while (residuo == 0);

X和y都是在文本框中写入的数字,我使用num1和num2来保存x和y的值,以便num1更高,num2更小。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的终止条件不正确。它应该是while (residuo != 0)。实际上,您可以在一次迭代后终止循环,或者您处于infinte循环中。