目錄
範例
演算法
輸出
首頁 後端開發 C++ 第n個卡塔蘭數的C程序

第n個卡塔蘭數的C程序

Aug 28, 2023 pm 02:25 PM
c程式 第n個 卡塔蘭數

第n個卡塔蘭數的C程序

給定一個整數n;任務是找出第 n 個位置的加泰隆尼亞數字。那麼,在做程序之前我們必須知道什麼是加泰羅尼亞數?

加泰羅尼亞數是自然數的序列,它以各種計數問題的形式出現。

#加泰隆尼亞數C0 , C1, C2,… Cn 由公式−

$$c_{n}=\frac{1}{n 1}\binom{2n}{n} = \ frac{2n!}{ (n 1)!n!}$$

每個n = 0, 1, 2, 3, … 的幾個加泰隆尼亞數字是1, 1, 2, 5, 14, 42, 132 , 429, 1430, 4862, …

所以如果我們輸入n =3 我們應該得到5 作為程式的輸出

Some加泰隆尼亞數字的一些應用 -

  • ##計算具有n 個鍵的可能二元搜尋樹的數量。
  • 找到包含n 對括號且正確的表達式的數量匹配。與n = 3 一樣,可能的括號表達式為((()))、()(())、()()()、(())()、(()())。
  • 尋找在圓不相交和弦上連接點的多種方法,等等。

#範例

的中文翻譯為:

範例

Input: n = 6
Output: 132
Input: n = 8
Output: 1430
登入後複製

#解決給定問題的方法 -

  • 輸入n。
  • #檢查如果n <= 1,則傳回1
  • 從i= 0循環到i
  • 對於每個i,設定result = result (catalan(i)*catalan(n-i-1))
  • 返回並列印結果。

演算法

Start
   Step 1 -> In function unsigned long int catalan(unsigned int n)
      If n <= 1 then,
         Return 1
      End if
      Declare an unsigned long variable res = 0
      Loop For i=0 and i<n and i++
         Set res = res + (catalan(i)*catalan(n-i-1))
      End Loop
      Return res
   Step 2 -> int main()
   Declare an input n = 6
   Print "catalan is : then call function catalan(n)
Stop
登入後複製

範例

的中文翻譯為:

範例

#include <stdio.h>
// using recursive approach to find the catalan number
unsigned long int catalan(unsigned int n) {
   // Base case
   if (n <= 1) return 1;
   // catalan(n) is sum of catalan(i)*catalan(n-i-1)
   unsigned long int res = 0;
   for (int i=0; i<n; i++)
      res += catalan(i)*catalan(n-i-1);
   return res;
}
//Main function
int main() {
   int n = 6;
   printf("catalan is :%ld</p><p>", catalan(n));
   return 0;
}
登入後複製

輸出

catalan is :132
登入後複製

以上是第n個卡塔蘭數的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

將以下內容翻譯為中文:C程式將羅馬數字轉換為十進位數字 將以下內容翻譯為中文:C程式將羅馬數字轉換為十進位數字 Sep 05, 2023 pm 09:53 PM

給出以下是一個將羅馬數字轉換為十進制數字的C語言演算法:演算法步驟1-開始步驟2-在運行時讀取羅馬數字步驟3-長度:=strlen(roman)步驟4-對於i=0到長度-1   步驟4.1-switch(roman[i])     步驟4.1.1-case'm':    &nbs

C++程式比較兩個字串的字典序 C++程式比較兩個字串的字典序 Sep 04, 2023 pm 05:13 PM

字典序字串比較是指字串依照字典順序進行比較。例如,如果有兩個字串'apple'和'appeal',第一個字串將排在後面,因為前三個字元'app'是相同的。然後對於第一個字串,字元是'l',而在第二個字串中,第四個字元是'e'。由於'e'比'l'短,所以如果我們按照字典順序排列,它將排在前面。在安排之前,字串會按字典順序進行比較。在本文中,我們將看到使用C++進行按字典順序比較兩個字串的不同技術。在C++字串中使用compare()函數C++string物件有一個compare()

C++程式以給定值為參數,找出雙曲正弦反函數的值 C++程式以給定值為參數,找出雙曲正弦反函數的值 Sep 17, 2023 am 10:49 AM

雙曲函數是使用雙曲線而不是圓定義的,與普通三角函數相當。它從提供的弧度角傳回雙曲正弦函數中的比率參數。但要做相反的事,或者換句話說。如果我們想要根據雙曲正弦值計算角度,我們需要像雙曲反正弦運算一樣的反雙曲三角運算。本課程將示範如何使用C++中的雙曲反正弦(asinh)函數,並使用雙曲正弦值(以弧度為單位)計算角度。雙曲反正弦運算遵循下列公式-$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})},其中\:In\:是\:自然對數\:(log_e\:k)

C程式以找到鍊錶的長度 C程式以找到鍊錶的長度 Sep 07, 2023 pm 07:33 PM

連結列表使用動態記憶體分配,即它們相應地增長和收縮。它們被定義為節點的集合。這裡,節點有兩個部分,即資料和鏈路。資料、連結和鍊錶的表示如下-鍊錶的類型鍊錶有四種類型,如下:-單鍊錶/單鍊錶雙/雙向鍊錶循環單鍊錶循環雙鍊錶我們使用遞歸方法求鍊錶長度的邏輯是-intlength(node *temp){  if(temp==NULL)   returnl;  else{&n

C程式使用rename()函數更改檔名 C程式使用rename()函數更改檔名 Sep 21, 2023 pm 10:01 PM

rename函數將檔案或目錄從舊名稱變更為新名稱。此操作類似於移動操作。因此,我們也可以使用此rename函數來移動檔案。此函數存在於stdio.h庫頭檔中。 rename函數的語法如下:intrename(constchar*oldname,constchar*newname);rename()函數的函數它接受兩個參數。一個是oldname,一個是newname。這兩個參數都是指向常數字元的指針,用於定義檔案的舊名稱和新名稱。如果檔案重新命名成功,則傳回零;否則,傳回非零整數。在重新命名操作期間

C++程式列印字典 C++程式列印字典 Sep 11, 2023 am 10:33 AM

映射是C++中的一種特殊類型的容器,其中每個元素都是一對兩個值,即鍵值和映射值。鍵值用於索引每個項目,映射值是與鍵關聯的值。無論映射值是否唯一,鍵始終是唯一的。要在C++中列印映射元素,我們必須使用迭代器。一組項目中的一個元素由迭代器物件指示。迭代器主要與陣列和其他類型的容器(例如向量)一起使用,並且它們具有一組特定的操作,可用於識別特定範圍內的特定元素。可以增加或減少迭代器來引用範圍或容器中存在的不同元素。迭代器指向範圍內特定元素的記憶體位置。使用迭代器在C++中列印地圖首先,我們先來看看如何定義

第n個卡塔蘭數的C/C++程式是什麼? 第n個卡塔蘭數的C/C++程式是什麼? Sep 11, 2023 pm 10:33 PM

卡塔蘭數是一系列數字。卡塔蘭數是一系列自然數,在各種計數問題中出現,通常涉及遞歸定義的物件。 Cn是長度為2n的Dyck詞的數量。 Dyck字是由n個X和n個Y組成的字串,使得字串的任何初始片段中Y的數量不超過X的數量。例如,以下是長度為6的Dyck詞:XXXYYYXYXXYYXYXYXYXXYYXYXXYXYY.將符號X重新解釋為開括號,將Y解釋為閉括號,Cn計算包含n對正確匹配的括號的表達式的數量((()))( )(())()()()(())()(()())Cn是n+1個因子可以完全括起來的不

寫一個C程序,使用strncmp函式庫函數來比較兩個字串 寫一個C程序,使用strncmp函式庫函數來比較兩個字串 Sep 09, 2023 pm 01:17 PM

Strncmp是一個預先定義的函式庫函數,存在於string.h檔案中,它用於比較兩個字串並顯示哪個字串較大。 strcmp函數(字串比較)此函數比較兩個字串。它會傳回兩個字串中第一個不匹配字元的ASCII差異。語法intstrcmp(string1,string2);如果差異等於零,則string1=string2。如果差異為正,則string1>string2。如果差異為負,則string1<string2。範例strncmp函數此函數用於比較兩個字串的前n個字元。語法strn

See all articles