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

本文关键字:2012 遇到 问题 VS 计算 最大公约数 | 更新日期: 2023-09-27 18:30:26

我必须在两个文本框中写 2 个不同的数字,并用一个按钮计算 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 较小。有什么想法吗?

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

您的终止条件不正确。应该是while (residuo != 0). 实际上,您要么在一次迭代后终止循环,要么处于无限循环中。