Tribonaci词

喜欢 斐波那契词 ,一个词。是一个特定的数字序列。Tribonacci单词是通过重复的连接形成的,就像斐波那契单词是通过重复的加法形成的一样。但与斐波那契词不同的是,Tribonacci词是由最后三个词的重复相加构成的,它的前三个词彼此不同。

null
In Tribonacci word,  S(0) = 1,   S(1) = 12,   S(2) = 1213,  S(3) = 1213121   ..... where S(n) = S(n-1) + S(n-2) + S(n-3) and + represents the concatenation of strings. 

任务是找到给定数字n的第n个tribonaci单词。 例如:

Input : n = 4Output : S(4) = 1213121121312Input : n = 3Output : S(3) = 1213121

就像在Fibonacci单词的程序中一样,我们使用迭代的概念来寻找第n个Fibonacci单词,我们可以使用迭代的概念来寻找第n个Tribonacci单词。因此,为了找到第n个Tribonacci单词,我们将使用三个字符串Sn_1、Sn_2和Sn_3,分别代表S(n-1)、S(n-2)和S(n-3),在每次迭代中,我们将更新tmp=Sn_3、Sn_3=Sn_3+Sn_2+Sn_1、Sn_1=Sn_2和Sn_2=tmp,这样我们可以找到第n个Tribonacci单词。

C++

// C++ program for nth Fibonacci word
#include <bits/stdc++.h>
using namespace std;
// Returns n-th Tribonacci word
string tribWord( int n) {
string Sn_1 = "1" ;
string Sn_2 = "12" ;
string Sn_3 = "1213" ;
string tmp;
for ( int i = 3; i <= n; i++) {
tmp = Sn_3;
Sn_3 += (Sn_2 + Sn_1);
Sn_1 = Sn_2;
Sn_2 = tmp;
}
return Sn_3;
}
// driver program
int main() {
int n = 6;
cout << tribWord(n);
return 0;
}


JAVA

// program for nth Tribonacci word
class GFG {
// Returns n-th Tribonacci word
static String tribWord( int n) {
String Sn_1 = "1" ;
String Sn_2 = "12" ;
String Sn_3 = "1213" ;
String tmp;
for ( int i = 3 ; i <= n; i++) {
tmp = Sn_3;
Sn_3 += (Sn_2 + Sn_1);
Sn_1 = Sn_2;
Sn_2 = tmp;
}
return Sn_3;
}
// Driver code
public static void main(String[] args) {
int n = 6 ;
System.out.print(tribWord(n));
}
}
// This code is contributed by Anant Agarwal.


Python3

# Python3 Program for nth
# Tribonacci word
# Returns n-th Tribonacci word
def tribWord(n):
Sn_1 = "1"
Sn_2 = "12"
Sn_3 = "1213"
for i in range ( 3 , n + 1 ):
tmp = Sn_3
Sn_3 + = (Sn_2 + Sn_1)
Sn_1 = Sn_2
Sn_2 = tmp
return Sn_3
# Driver code
n = 6
print (tribWord(n))
# This code is contributed By Anant Agarwal.


C#

// C# program for nth Tribonacci word
using System;
class GFG {
// Returns n-th Tribonacci word
static string tribWord( int n)
{
string Sn_1 = "1" ;
string Sn_2 = "12" ;
string Sn_3 = "1213" ;
string tmp;
for ( int i = 3; i <= n; i++) {
tmp = Sn_3;
Sn_3 += (Sn_2 + Sn_1);
Sn_1 = Sn_2;
Sn_2 = tmp;
}
return Sn_3;
}
// Driver code
public static void Main() {
int n = 6;
Console.WriteLine(tribWord(n));
}
}
// This code is contributed by vt_m.


PHP

<?php
// Returns n-th Tribonacci word
function tribWord( $n )
{
$Sn_1 = "1" ;
$Sn_2 = "12" ;
$Sn_3 = "1213" ;
$tmp ;
for ( $i = 3; $i <= $n ; $i ++)
{
$tmp = $Sn_3 ;
$Sn_3 .= ( $Sn_2 . $Sn_1 );
$Sn_1 = $Sn_2 ;
$Sn_2 = $tmp ;
}
return $Sn_3 ;
}
// Driver Code
$n = 6;
echo tribWord( $n );
// This code is contributed by mits
?>


Javascript

<script>
// javascript program for nth Fibonacci word
// Returns n-th Tribonacci word
function tribWord(n) {
var Sn_1 = "1" ;
var Sn_2 = "12" ;
var Sn_3 = "1213" ;
var tmp;
for ( var i = 3; i <= n; i++) {
tmp = Sn_3;
Sn_3 += (Sn_2 + Sn_1);
Sn_1 = Sn_2;
Sn_2 = tmp;
}
return Sn_3;
}
// driver program
var n = 6;
document.write( tribWord(n));
// This code is contributed by noob2000.
</script>


输出:

12131211213121213121121312131211213121213121

https://youtu.be/TM5

-ET2AKJY

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享