0
private void button1_Click(object sender, EventArgs e)
{
        String UserNumber = this.textBox1.Text;
        int NewUserNumber = Convert.ToInt32(UserNumber);
        int result = 0;
        int second = 0;

        while (NewUserNumber >= 1) 
        {

            result = NewUserNumber * (NewUserNumber - 1);
            NewUserNumber--;
        }
        String i = Convert.ToString(result);
        this.textBox2.Text = i;
    }
}

これが宿題であることは理解していますが、行き詰まっています。私は本当にこれを解決したくありません。自分でやりたいのです。

なぜ機能しないのかわかりません。何を入力しても2が出力されます。

私はJavaでこれを簡単に行うことができましたが、変換は私に届きます..

どんな助けでも素晴らしいでしょう。

4

8 に答える 8

7

あなたの問題は変換にはありません。見てください

result = NewUserNumber * (NewUserNumber - 1);
于 2013-07-31T09:15:09.913 に答える
0
    static void Main(string[] args)
    {
        int number, fact;
        Console.WriteLine("enter the number for geting factorial");
        number = Convert.ToInt32(Console.ReadLine());
        fact = number;
        for (int i = fact - 1; i > 0; i--)
        {
            fact = fact * i;
        }
        Console.WriteLine(fact);
        Console.ReadLine();
    }
于 2014-09-13T08:18:59.010 に答える
0

コードでデバッガーを実行してから、ウォッチ ウィンドウを使用してステップ実行する必要があります。これは簡単に実行でき、各ポイントでの各値が正確に表示されます (ブレーク ポイントを設定します)。どのIDEを使用していますか?

于 2013-07-31T10:20:13.533 に答える
0

結果を次のように初期化します

int Result=1;

for ループを次のように記述します。

while (NewUserNumber >= 1) 
{
   result = result * NewUserNumber;
   NewUserNumber--;
}

また

以下を使用することもできます

public int Factorial(int num)
{
  if(num==1)
     return 1;
  return num * Factorial(num-1);
}
于 2013-07-31T09:16:38.770 に答える
0

while ループ構造と、その外で結果値を設定する方法と乗算を確認する必要があります。

    while (NewUserNumber >= 1) 
    {

        result = NewUserNumber * (NewUserNumber - 1);
        NewUserNumber--;
    }
    String i = Convert.ToString(result);

また、別のものを宣言しましたint second = 0; -なぜそれを宣言しているのかわかりません。

于 2013-07-31T09:18:25.940 に答える