# Fibonomial coefficient and Fibonomial triangle

Fibonomial Coefficient
In mathematics, the Fibonomial coefficients or Fibonacci-binomial coefficients are defined as where n and k are non-negative integers, 0 ≤ k ≤ n, Fj is the j-th Fibonacci number and n!F is the nth Fibonorial, where 0!F, being the empty product, evaluates to 1.
The Fibonomial coefficients are all integers. Some special values are:     Fibonomial triangle
The Fibonomial coefficients are similar to binomial coefficients and can be displayed in a triangle similar to Pascal’s triangle. The first eight rows are shown below. The Recurrence Relation for Fibonomial Triangle: Given a positive integer n. The task is to print Fibonomial triangle of height n (or n + 1 rows).

Examples:

Input : n = 6
Output :
1
1 1
1 1 1
1 2 2 1
1 3 6 3 1
1 5 15 15 5 1
1 8 40 60 40 8 1

Input : n = 5
Output :
1
1 1
1 1 1
1 2 2 1
1 3 6 3 1
1 5 15 15 5 1


## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Below is the implementation of printing Fibonomial Triangle of height n:

## C++

 // CPP Program to print Fibonomial Triangle of height n.  #include  #define N 6  using namespace std;     // Function to produce Fibonacci Series.  void fib(int f[], int n)  {      int i;          /* 0th and 1st number of the series are 0 and 1*/     f = 0;      f = 1;          for (i = 2; i <= n; i++)                 /* Add the previous 2 numbers in the series           and store it */         f[i] = f[i-1] + f[i-2];      }     // Function to produce fibonomial coefficient  void fibcoef(int fc[][N+1], int f[], int n)  {      for (int i = 0; i <= n; i++)          fc[i] = 1;                 for (int i = 1; i <= n; i++)      {          for (int j = 1; j <= i; j++)          {              int k = j;              while(k--)                  fc[i][j] *= f[k];                                 k = 1;                             while((j+1)!=k)                  fc[i][j] /= f[k++];          }      }  }     // Function to print Fibonomial Triangle.  void printFibonomialTriangle(int n)  {      int f[N+1] = { 0 };             // Finding the fibonacci series.      fib(f, n);             // to store triangle value.      int dp[N+1][N+1] = { 0 };             // initalising the 0th element of each row       // and diagonal element equal to 0.      for (int i = 0; i <= n; i++)          dp[i] = dp[i][i] = 1;                 // for each row.      for (int i = 1; i <= n; i++)      {          // for each column.          for (int j = 1; j < i; j++)                         // finding each element using recurrence               // relation.              dp[i][j] = f[i-j+1]*dp[i-1][j-1] +                         f[j-1]*dp[i-1][j];          }             // printing the Fibonomial Triangle.      for (int i = 0; i <= n; i++)      {          for (int j = 0; j <= i; j++)                      cout << dp[i][j] << " ";                  cout << endl;      }  }  // Driven Program  int main()  {      int n = 6;          printFibonomialTriangle(n);      return 0;  }

## Java

 // Java Program to print Fibonomial   // Triangle of height n.  class GFG  {      static final int N=6;             // Function to produce Fibonacci Series.      static void fib(int f[], int n)      {          int i;                 /* 0th and 1st number of           the series are 0 and 1*/         f = 0;          f = 1;                 for (i = 2; i <= n; i++)                         /* Add the previous 2 numbers in               the series and store it */             f[i] = f[i-1] + f[i-2];       }             // Function to produce fibonomial coefficient      static void fibcoef(int fc[][], int f[], int n)      {          for (int i = 0; i <= n; i++)              fc[i] = 1;                         for (int i = 1; i <= n; i++)          {              for (int j = 1; j <= i; j++)              {                  int k = j;                                     while(k > 0)                  {                      k--;                      fc[i][j] *= f[k];                  }                                         k = 1;                                     while((j + 1) != k)                      fc[i][j] /= f[k++];              }          }      }             // Function to print Fibonomial Triangle.      static void printFibonomialTriangle(int n)      {          int f[] = new int[N+1];                     // Finding the fibonacci series.          fib(f, n);                     // to store triangle value.          int dp[][] = new int[N + 1][N + 1];                     // initalising the 0th element of each row           // and diagonal element equal to 0.          for (int i = 0; i <= n; i++)              dp[i] = dp[i][i] = 1;                         // for each row.          for (int i = 1; i <= n; i++)          {              // for each column.              for (int j = 1; j < i; j++)                                 // finding each element using recurrence                   // relation.                  dp[i][j] = f[i - j + 1] * dp[i - 1][j - 1] +                                             f[j-1]*dp[i-1][j];           }                     // printing the Fibonomial Triangle.          for (int i = 0; i <= n; i++)          {              for (int j = 0; j <= i; j++)                       System.out.print(dp[i][j] + " ");                   System.out.println();          }  }         // Driver code      public static void main (String[] args)      {          int n = 6;                     printFibonomialTriangle(n);      }  }     // This code is contributed by Anant Agarwal.

## Python3

 # Python3 Program to print Fibonomial   # Triangle of height n.  N = 6;     # Function to produce Fibonacci Series.  def fib(f, n):         # 0th and 1st number of the       # series are 0 and 1      f = 0;      f = 1;         for i in range(2, n + 1):                 # Add the previous 2 numbers in           # the series and store it           f[i] = f[i - 1] + f[i - 2];      # Function to produce fibonomial  # coefficient  def fibcoef(fc, f, n):         for i in range(n + 1):          fc[i] = 1;                 for i in range(1, n + 1):          for j in range(1, i + 1):              k = j;              while(k > 0):                  k -= 1;                  fc[i][j] *= f[k];                                 k = 1;                             while((j + 1) != k):                  fc[i][j] /= f[k];                  k += 1;     # Function to print Fibonomial Triangle.  def printFibonomialTriangle(n):         f =  * (N + 1);             # Finding the fibonacci series.      fib(f, n);             # to store triangle value.      dp = [[0 for x in range(N + 1)]                for y in range(N + 1)];             # initalising the 0th element of each      # row and diagonal element equal to 0.      for i in range(n + 1):          dp[i] = 1;          dp[i][i] = 1;                 # for each row.      for i in range(1, n + 1):          # for each column.          for j in range(1, i):                         # finding each element using               # recurrence relation.              dp[i][j] = (f[i - j + 1] * dp[i - 1][j - 1] +                          f[j - 1] * dp[i - 1][j]);              # printing the Fibonomial Triangle.      for i in range(n + 1):          for j in range(i + 1):                   print(dp[i][j], end = " ");               print("");         # Driver Code  n = 6;   printFibonomialTriangle(n);     # This code is contributed by mits

## C#

 // C# Program to print Fibonomial   // Triangle of height n.  using System;     class GFG  {      static int N = 6;             // Function to produce Fibonacci Series.      static void fib(int []f, int n)      {          int i;                 /* 0th and 1st number of          the series are 0 and 1*/         f = 0;          f = 1;                 for (i = 2; i <= n; i++)                         /* Add the previous 2 numbers in               the series and store it */             f[i] = f[i - 1] + f[i - 2];       }             // Function to produce fibonomial coefficient      static void fibcoef(int [,]fc, int []f, int n)      {          for (int i = 0; i <= n; i++)              fc[i,0] = 1;                         for (int i = 1; i <= n; i++)          {              for (int j = 1; j <= i; j++)              {                  int k = j;                                     while(k > 0)                  {                      k--;                      fc[i, j] *= f[k];                  }                                         k = 1;                                     while((j + 1) != k)                      fc[i, j] /= f[k++];              }          }      }             // Function to print Fibonomial Triangle.      static void printFibonomialTriangle(int n)      {          int []f = new int[N + 1];                     // Finding the fibonacci series.          fib(f, n);                     // to store triangle value.          int [,]dp = new int[N + 1, N + 1];                     // initalising the 0th element of each row           // and diagonal element equal to 0.          for (int i = 0; i <= n; i++)              dp[i, 0] = dp[i, i] = 1;                         // for each row.          for (int i = 1; i <= n; i++)          {              // for each column.              for (int j = 1; j < i; j++)                                 // finding each element using recurrence                   // relation.                  dp[i,j] = f[i - j + 1] * dp[i - 1,j - 1] +                                      f[j - 1] * dp[i - 1, j];           }                     // printing the Fibonomial Triangle.          for (int i = 0; i <= n; i++)          {              for (int j = 0; j <= i; j++)               Console.Write(dp[i,j] + " ");               Console.WriteLine();          }  }         // Driver code      public static void Main ()      {          int n = 6;                     printFibonomialTriangle(n);      }  }     // This code is contributed by Vt_m.

## PHP

 

Output:

1
1 1
1 1 1
1 2 2 1
1 3 6 3 1
1 5 15 15 5 1
1 8 40 60 40 8 1


My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : Mithun Kumar

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.