C#遞歸算法計算階乘的方法

2022-09-20 14:24 更新

本文將為大家?guī)硎褂肅#遞歸算法來計算階乘的方法,通過一個簡單實例來說明,供大家參考。


循環(huán)實現(xiàn)

一般來說,想要實現(xiàn)一個階乘,比如6*5*4*3*2*1這個簡單階乘,一般會首先想到使用循環(huán)遍歷,如下面代碼所示:

class Program{
    static void Main(string[] args){
      Console.WriteLine("請輸入一個數(shù)");
      int number = Convert.ToInt32(Console.ReadLine());
      double result = JieCheng(number);
      Console.WriteLine(number.ToString() + "的階乘結(jié)果是:" + result.ToString());
      Console.ReadKey();
    }
  
    public static double JieCheng(int number){
      if (number == 0){
        return 0;
      }
  
      //初始值必須設(shè)置為1
      double result = 1;
  
      for (int i = number; i >= 1; i--){
        result = result*i;
      }
      return result;
    }
}

遞歸實現(xiàn)

階乘其實還有另一種實現(xiàn)方式:6*(6-1)*(6-2)*(6-3)*(6-4)*(6-5)或6*(6-1)*(5-1)*(4-1)*(3-1)*(2-1),也就是說后面數(shù)總是由前面的數(shù)減1得到的。

當(dāng)實現(xiàn)的邏輯相同,且內(nèi)部遞歸方法的參數(shù)可以由外部遞歸方法的參數(shù),經(jīng)過某種算法而獲得,這正是遞歸登場的時候。

遞歸方式實現(xiàn)代碼如下:

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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號