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
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.
Implementation:
C++
#include<bits/stdc++.h>
using namespace std;
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;
}
int main()
{
int n = 6;
cout << fibWord(n);
return 0;
}
|
Java
import java.util.*;
class Eulerian
{
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;
}
public static void main(String[] args)
{
int n = 6 ;
System.out.print(fibWord(n));
}
}
|
Python3
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
n = 6
print (fibWord(n))
|
C#
using System;
class GFG
{
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;
}
public static void Main()
{
int n = 6;
Console.WriteLine(fibWord(n));
}
}
|
Javascript
<script>
function fibWord(n)
{
var Sn_1 = "0" ;
var Sn = "01" ;
var tmp;
for ( var i = 2; i <= n; i++)
{
tmp = Sn;
Sn += Sn_1;
Sn_1 = tmp;
}
return Sn;
}
var n = 6;
document.write( fibWord(n));
</script>
|
Output
010010100100101001010
Last Updated :
27 Jul, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...