2017-10-27 9 views
2

階乗を行うために再帰を伴うクラスがあります。私の質問は、私がそれをしようとしているときに私はエラーの束を得たので、私はそれを適切に呼び出す方法です。どのように再帰(階乗)を正しく呼びますか

これは、だから私の質問は、私は倍の再帰の実行の数を設定し、それを表示する方法である

public class Factorial 
{ 
    public static double factorial_Recursion(int number) 
    { 
     if (number == 1) 
      return 1; 
     else 
      return number * factorial_Recursion(number - 1); 
    } 
} 

私の階乗のクラスです。 (私は途中で窓の形になっています)私はC#の初心者です。これは再帰を使った初めてのことです。もしそれがスーパーダム、ごめんなさい、ごめんなさい、ごめんなさい!私は倍の再帰の実行の数を設定し、 を表示することができますどのように

+0

factorial_Recursion(10)10階乗を計算したい場合は、 – msoliman

+0

は何を問題にしていますか?これは正しいか? –

+0

私はそれを理解した、私はちょうどそれを正しく呼び出す方法を知らなかった。私はそれが感謝の男よりも複雑だったと思っていた。 –

答えて

1

私はあなたがWindowsでこれをC#を使用して開発したとおっしゃいましたと思います。

ボタンクリックイベントで呼び出すだけで、フォームにラベルを追加し(id = "lblResult")、ボタンを追加してダブルクリックしてクリックイベントを追加し、ラベルのテキストを次の関数呼び出しの結果

lblResult.Text = Factorial.factorial_Recursion(10).ToString(); 
+0

これは私が必要としていたものです。ありがとう。 –

+1

plzマークが役に立った場合 – msoliman

+0

@ColeBrowneこの回答が問題を解決した場合は、緑色のチェックマークをクリックして正しいとマークしてください。そのようにすれば、他の人が将来これを読むときにどこから始めるべきかを知ることができ、SOの全体的な評判経済が機能するはずです:)。おかげで –

0

それ

あなたはすでにやった:あなたは、入力が正の整数nある与えられたn回実行するには再帰を設定します。

0
public class Factorial 
{ 
    public static double factorial_Recursion(int number) 
    { 
     if (number == 1) 
      return 1; 
     else 
      return number * factorial_Recursion(number - 1); 
    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine(Factorial.factorial_Recursion(10)); 
    } 
} 

1未満で呼び出すと、スタック

をオーバーフローする、あなたが持っているもので、

enter image description here

またはビットも

public class MathStuff 
{ 
    public static double Factorial(int n) => n == 1? 1 : n * Factorial(n - 1); 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine(MathStuff.Factorial(10)); 
    } 
} 

をクリーンアップを提供します

0

これはstaticメソッドなので、クラスをインスタンス化してそのまま呼び出す必要はありません。

Factorial.factorial_Recursion(5); 

exampleを参照してください。

関連する問題