Print n terms of Newman-Conway Sequence
Last Updated :
23 Aug, 2022
Newman-Conway numbers is the one that generates the following integer sequence.
1 1 2 2 3 4 4 4 5 6 7 7….. and follows the below recursive formula.
P(n) = P(P(n - 1)) + P(n - P(n - 1))
Given a number n then print n terms of Newman-Conway Sequence
Examples:
Input : 13
Output : 1 1 2 2 3 4 4 4 5 6 7 7 8
Input : 20
Output : 1 1 2 2 3 4 4 4 5 6 7 7 8 8 8 8 9 10 11 12
C++
#include <bits/stdc++.h>
using namespace std;
void sequence( int n)
{
int f[n + 1];
f[0] = 0;
f[1] = 1;
f[2] = 1;
cout << f[1] << " " << f[2] << " " ;
for ( int i = 3; i <= n; i++) {
f[i] = f[f[i - 1]] + f[i - f[i - 1]];
cout << f[i] << " " ;
}
}
int main()
{
int n = 13;
sequence(n);
return 0;
}
|
Java
class GFG
{
public static void sequence( int n)
{
int f[] = new int [n + 1 ];
f[ 0 ] = 0 ;
f[ 1 ] = 1 ;
f[ 2 ] = 1 ;
System.out.print( f[ 1 ] + " " + f[ 2 ] + " " );
for ( int i = 3 ; i <= n; i++)
{
f[i] = f[f[i - 1 ]] + f[i - f[i - 1 ]];
System.out.print(f[i] + " " );
}
}
public static void main(String []args)
{
int n = 13 ;
sequence(n);
}
}
|
Python3
def sequence(n):
f = [ 0 , 1 , 1 ]
print (f[ 1 ], end = " " ),
print (f[ 2 ], end = " " ),
for i in range ( 3 ,n + 1 ):
f.append( f[f[i - 1 ]] + f[i - f[i - 1 ]])
print (f[i], end = " " ),
n = 13
sequence(n)
|
C#
using System;
class GFG
{
public static void sequence( int n)
{
int []f = new int [n + 1];
f[0] = 0;
f[1] = 1;
f[2] = 1;
Console.Write( f[1] + " " + f[2] + " " );
for ( int i = 3; i <= n; i++)
{
f[i] = f[f[i - 1]] + f[i - f[i - 1]];
Console.Write(f[i] + " " );
}
}
public static void Main()
{
int n = 13 ;
sequence(n);
}
}
|
PHP
<?php
function sequence( $n )
{
$f = array (0);
$f [0] = 0;
$f [1] = 1;
$f [2] = 1;
echo $f [1] , " " , $f [2] , " " ;
for ( $i = 3; $i <= $n ; $i ++)
{
$f [ $i ] = $f [ $f [ $i - 1]] +
$f [ $i - $f [ $i - 1]];
echo $f [ $i ], " " ;
}
}
{
$n = 13;
sequence( $n );
return 0;
}
?>
|
Javascript
<script>
function sequence(n)
{
let f = [];
f[0] = 0;
f[1] = 1;
f[2] = 1;
document.write( f[1] + " " + f[2] + " " );
for (let i = 3; i <= n; i++)
{
f[i] = f[f[i - 1]] + f[i - f[i - 1]];
document.write(f[i] + " " );
}
}
let n = 13 ;
sequence(n);
</script>
|
Output :
1 1 2 2 3 4 4 4 5 6 7 7 8
Time complexity: O(n)
Auxiliary Space: O(n)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...