C#遞歸算法計(jì)算階乘的方法

2022-09-20 14:24 更新

本文將為大家?guī)?lái)使用C#遞歸算法來(lái)計(jì)算階乘的方法,通過(guò)一個(gè)簡(jiǎn)單實(shí)例來(lái)說(shuō)明,供大家參考。


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

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

class Program{
    static void Main(string[] args){
      Console.WriteLine("請(qǐng)輸入一個(gè)數(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;
    }
}

遞歸實(shí)現(xiàn)

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

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

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)