首页 > 解决方案 > 使用 c# 不使用 / 运算符将 2 整数相除。任何人都可以将其转换为 for 循环

问题描述

我可以要求删除这个问题吗?帮助我恢复我的帐户。谢谢

  int[] numbers = { 200, 100, 50, 3, 1 };
        int count = int.Parse(txtNumber.Text);
        double number = 0;
        double number1 = 0;
        double number2 = 0;
        double number3 = 0;
        double number4 = 0;
        if (count == 0)
        {
            MessageBox.Show("Can't Divide 0");
            return;
        }          
        while (count >= numbers[0])
        {
            count = count - numbers[0];
            number++;
        }
        txt200.Text = number.ToString();
        label1.Text = count.ToString();
        while (decimal.Parse(label1.Text) >= numbers[1])
        {
            label1.Text = (int.Parse(label1.Text) - numbers[1]).ToString();
            number1++;
        }
        txt100.Text = number1.ToString();
        
      

有人可以帮我投票删除吗?

标签: c#for-loop

解决方案


您可以使用空for循环来执行此操作,其中所有操作都发生在循环的条件和迭代器中:

int result = 1;
for (int numCopy = numerator; numCopy > denominator; numCopy -= denominator, result++);

这是一个示例方法:

public static int Divide(int numerator, int denominator)
{
    int result = 0;
    for (; numerator >= denominator; numerator -= denominator, result++) ;
    return result;
}

请注意,我在这里只使用整数。将字符串转换为整数,然后在循环内再次转换回字符串效率不高。现在我们可以转换Text一次属性,将整数传递给我们的方法,然后转换一次结果。

这是一个示例用法(使用控制台应用程序):

static void Main()
{
    int numerator = GetIntFromUser("Please enter the numerator: ");
    int denominator = GetIntFromUser("Please enter the denominator: ");

    int result = Divide(numerator, denominator);

    Console.WriteLine($"{numerator} / {denominator} = {result}");

    GetKeyFromUser("\nDone! Press any key to exit...");
}

输出

在此处输入图像描述


哦,这些是我正在使用的辅助方法:

private static int GetIntFromUser(string prompt)
{
    int input;

    do
    {
        Console.Write(prompt);
    } while (!int.TryParse(Console.ReadLine(), out input));

    return input;
}

private static ConsoleKeyInfo GetKeyFromUser(string prompt)
{
    Console.Write(prompt);
    var key = Console.ReadKey();
    Console.WriteLine();
    return key;
}

推荐阅读