1

ユーザー入力のintから合計を作成できるかどうか疑問に思っていましたが、合計は毎回ラドムでなければなりません。

これは私が作ったコードです:

    public static string genSum(int askedNumber)
    {
        string outputStr = null;

        bool switchOneTwo = false;
        int neededSum = 0;

        int intOne = 0;
        int intTwo = 0;

        while (askedNumber != neededSum)
        {

            if (switchOneTwo == true)
            {
                intOne += 1;
                switchOneTwo = false;
            }
            else
            {
                intTwo += 1;
                switchOneTwo = true;
            }

            neededSum = intOne + intTwo;

            if (neededSum == askedNumber)
            {
                if (neededSum >= 4)
                {
                    Random randomInt = new Random();

                    int tmpIntOne = intOne;
                    int tmpIntTwo = intTwo;
                    int method;

                    //For now only one method
                    method = randomInt.Next(1, 1);

                    if (method == 1)
                    {
                        tmpIntOne = tmpIntOne / 2;
                        tmpIntTwo = (tmpIntTwo * 2) - tmpIntOne;
                    }

                    intOne = tmpIntOne;
                    intTwo = tmpIntTwo;                
                }

                outputStr = "(" + intOne.ToString() + "+" + intTwo.ToString() + ")";

                return outputStr;
            }
        }
        return outputStr;
    }

だから私が欲しいのは、ユーザーがたとえば20などの数字を入力すると、合計が得られるということです:

ユーザーは 20 を入力し、GO! を押します。:

結果 :

10 + 10 = 20

12 + 8 = 20

5 + 15 = 20

1 + 19 = 20

3 + 17 = 20

ユーザーは 500 を入力し、GO! を押します。:

結果 :

9 + 491 = 500

263 + 237 = 500

300 + 200 = 500

250 + 250 = 500

109 + 391 = 500

4

2 に答える 2

2
foreach (var s in genSum(500).Take(5))
{
    Console.WriteLine(s);
}

public static IEnumerable<string> genSum(int askedNumber)
{
    Random r = new Random();
    while (true)
    {
        var i = r.Next(0, askedNumber);
        yield return i + "+" + (askedNumber - i);
    }
}
于 2013-06-14T19:55:59.590 に答える