# Fibonacci Word

Like Fibonacci numbers, a Fibonacci word. is a specific sequence of binary digits (or symbols from any two-letter alphabet). The Fibonacci word is formed by repeated concatenation in the same way that the Fibonacci numbers are formed by repeated addition. But unlike the fibonacci number, Fibonacci word has its first two terms different from each other.

```In Fibonacci word,
S(0) = 0,
S(1) = 01,
S(2) = 010,
S(3) = 01001
.....
where S(n) = S(n-1) + S(n-2) and +
represents the concatenation of
strings. ```

The task is to find nth Fibonacci word for a given number n.

Examples:

```Input : n = 4
Output : S(4) = 01001010

Input : n = 2
Output : S(2) = 010
```

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

Just like in program of Fibonacci number, we use the iterative concept of finding nth Fibonacci number here for finding nth Fibonacci word we can use the iterative concept. So for finding n-th Fibonacci word we will take two string Sn and Sn_1 which represent S(n) and S(n-1) respectively and on each iteration we will update tmp = Sn, Sn = Sn + Sn_1 and Sn_1 = tmp in this way we can find nth fibonacci word.

## C++

 `// program for nth Fibonacci word ` `#include ` `using` `namespace` `std; ` ` `  `// Returns n-th Fibonacci word ` `string fibWord(``int` `n) ` `{ ` `    ``string Sn_1 = ``"0"``; ` `    ``string Sn = ``"01"``; ` `    ``string tmp; ` `    ``for` `(``int` `i=2; i<=n; i++) ` `    ``{ ` `        ``tmp = Sn; ` `        ``Sn += Sn_1; ` `        ``Sn_1 = tmp; ` `    ``} ` ` `  `    ``return` `Sn; ` `} ` ` `  `// driver program ` `int` `main() ` `{ ` `    ``int` `n = 6; ` `    ``cout << fibWord(n); ` `    ``return` `0; ` `}  `

## Java

 `// Java program for nth Fibonacci word ` `import` `java.util.*; ` ` `  `class` `Eulerian ` `{ ` `    ``// Returns n-th Fibonacci word ` `    ``public` `static` `String fibWord(``int` `n) ` `    ``{ ` `        ``String Sn_1 = ``"0"``; ` `        ``String Sn = ``"01"``; ` `        ``String tmp; ` `        ``for` `(``int` `i=``2``; i<=n; i++) ` `        ``{ ` `            ``tmp = Sn; ` `            ``Sn += Sn_1; ` `            ``Sn_1 = tmp; ` `        ``} ` ` `  `        ``return` `Sn; ` `    ``} ` `     `  `    ``// driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``6``; ` `        ``System.out.print(fibWord(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by rishabh_jain `

## Python3

 `# Python3 program for nth Fibonacci word ` ` `  `# Returns n-th Fibonacci word ` `def` `fibWord(n): ` `    ``Sn_1 ``=` `"0"` `    ``Sn ``=` `"01"` `    ``tmp ``=` `"" ` `    ``for` `i ``in` `range``(``2``, n ``+` `1``): ` `        ``tmp ``=` `Sn ` `        ``Sn ``+``=` `Sn_1 ` `        ``Sn_1 ``=` `tmp ` `    ``return` `Sn ` ` `  `# driver program ` `n ``=` `6` `print` `(fibWord(n)) ` ` `  `# This code is contributed by Sachin Bisht `

## C#

 `// C# program for nth Fibonacci word ` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``// Returns n-th Fibonacci word ` `    ``public` `static` `String fibWord(``int` `n) ` `    ``{ ` `        ``String Sn_1 = ``"0"``; ` `        ``String Sn = ``"01"``; ` `        ``String tmp; ` `        ``for` `(``int` `i = 2; i <= n; i++) ` `        ``{ ` `            ``tmp = Sn; ` `            ``Sn += Sn_1; ` `            ``Sn_1 = tmp; ` `        ``} ` ` `  `        ``return` `Sn; ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 6; ` `        ``Console.WriteLine(fibWord(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m `

Output:

```010010100100101001010
```

My Personal Notes arrow_drop_up

Discovering ways to develop a plane for soaring career goals

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.

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.