-2

私の仕事は次のとおりです: 2 つの正の整数を読み取り、5 による除算のリマインダーが 0 (0 を含む) になるように、それらの間にいくつの数値 p が存在するかを出力するプログラムを作成します。例: p(17,25) = 2。

Console.Write("Enter min: ");
            int min = int.Parse(Console.ReadLine());
            Console.Write("Enter max: ");
            int max = int.Parse(Console.ReadLine());
            Console.WriteLine("The numbers devidable by 5 without remainder from {0} to {1} are: ",min,max);
            for (int i = min; i <= max; i++)
            {
                if (i % 5 == 0)
                {

                    Console.WriteLine(i);
                }
            }

これは、範囲内で 5 で割り切れる数を出力します...いくつあるのかを数えて、その数をコンソールに表示するにはどうすればよいですか?

4

8 に答える 8

8

正の引数の場合、O(1) で実行できます。

int DivisibleBy5From0To(int n)
{
    return (n / 5) + 1;
}

int DivisibleBy5FromTo(int lo, int hi)
{
    return DivisibleBy5From0To(hi) - DivisibleBy5From0To(lo - 1);
}

Math.Floor(n / 5.0)正ではない可能性のある引数については、の代わりに使用する必要がありますn / 5

于 2012-11-04T22:52:28.247 に答える
3
Console.WriteLine(Enumerable.Range(min,max-min+1).Count(n => n % 5 == 0));
于 2012-11-04T22:50:46.650 に答える
1
Console.Write("Enter min: ");
        int min = int.Parse(Console.ReadLine());
        Console.Write("Enter max: ");
        int max = int.Parse(Console.ReadLine());
        Console.WriteLine("The numbers devidable by 5 without remainder from {0} to {1} are: ",min,max);
        int count = 0;
        for (int i = min; i <= max; i++)
        {
            if (i % 5 == 0)
            {

                Console.WriteLine(i);
                count++;
            }
        }
        Console.WriteLine(count);

新しい行にはint count = 0;count++;が続きConsole.WriteLine(count);ます。ロジックは毎回i % 5 == 0真であり、カウントをインクリメントします。

于 2012-11-04T22:49:49.260 に答える