Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C untuk nombor Catalan ke-n

Program C untuk nombor Catalan ke-n

WBOY
WBOYke hadapan
2023-08-28 14:25:14967semak imbas

Program C untuk nombor Catalan ke-n

Diberi interger n; tugasnya ialah mencari Nombor Catalan pada kedudukan ke-n itu. Jadi, sebelum melakukan program kita mesti tahu apa itu Nombor Catalan?

Nombor Catlan ialah jujukan nombor asli, yang berlaku dalam bentuk pelbagai masalah nombor pengiraan.

#🎜🎜 #Nombor Catalan C0, C1, C2,… Cn didorong oleh formula −

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

Beberapa nombor Catalan untuk setiap n = 0, 1, 2, 3, … ialah

1, 1, 2 , 5, 14, 42, 132, 429, 1430, 4862, …

Jadi jika kita memasukkan n =3 kita sepatutnya mendapat 5 sebagai output daripada program# 🎜🎜#

Beberapa daripada beberapa aplikasi nombor Catalan

Mengira bilangan pokok n kekunci yang mungkin .
  • Mencari bilangan ungkapan yang mengandungi n pasangan kurungan yang dipadankan dengan betul. Seperti untuk n = 3 ungkapan kurungan yang mungkin ialah ((())), ()(()), ()()(), (())(), (()()).
  • Mencari bilangan cara untuk menyambungkan titik pada kord terputus bulatan dan banyak lagi.
  • Contoh
的中文翻译为:#🎜🎜 #
Input: n = 6
Output: 132
Input: n = 8
Output: 1430

解决给定问题的方法

输城🎜#输城🎥如果n

循环从i=0到i
  • 对于每个i,设置(hasilnya) n-i-1))
  • 返回并打印结果。
  • 算法
  • rreee🎜🎜#rreee🎜🎜#rreee🎜文翻译为:
  • 示例
  • 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;
    }

    Atas ialah kandungan terperinci Program C untuk nombor Catalan ke-n. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam