2016-11-11 6 views
-2

Я знаю, как вычислить факторный, используя цикл. Ниже приведен код цикла, но я получаю ошибку, делая это с помощью рекурсии, ниже и коды могут кто-то suggвычислить factorial в C# с использованием рекурсии

namespace factorial 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       int i, number, fact; 
       Console.WriteLine("Enter the Number"); 
       number = int.Parse(Console.ReadLine()); 
       fact = number; 
       for (i = number - 1; i >= 1; i--) 
       { 
        fact = fact * i; 
       } 
       Console.WriteLine("\nFactorial of Given Number is: "+fact); 
       Console.ReadLine(); 

      } 
     } 
    } 

Факториал с помощью рекурсии:

ЭСТ что-то, как, где я неправильно? Когда я его вычисляю с помощью рекурсии?

Факториал с помощью цикла:

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



public double factorial_WhileLoop(int number) 
{ 
    double result = 1; 
    while (number != 1) 
    { 
     result = result * number; 

    } 
    return result; 
} 
+0

Ошибка .. поясните пожалуйста – Sybren

+1

Где ваша рекурсивная функция? –

+0

@ Karel Я отредактировал свой вопрос и добавил свою рекурсивную функцию. Который, я думаю, имеет некоторую ошибку. – Programmermid

ответ

0

ваше имя вызова не равно вас имя метода.

factorial_Recursion is the method name. 
factorial_recursion is the call. 

Это сработало для меня.

namespace Testing 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 


     Console.WriteLine(factorial_Recursion(5)); 
     Console.WriteLine("press any Key"); 
     Console.ReadLine(); 

    } 

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

Спасибо, что работает отлично. – Programmermid

Смежные вопросы