Related Articles
Print first N terms of Lower Wythoff sequence
• Difficulty Level : Easy
• Last Updated : 22 Nov, 2019

Given an integer N, the task is to print the first N terms of the Lower Wythoff sequence.

Examples:

Input: N = 5
Output: 1, 3, 4, 6, 8

Input: N = 10
Output: 1, 3, 4, 6, 8, 9, 11, 12, 14, 16

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

Approach: Lower Wythoff sequence is a sequence whose nth term is a(n) = floor(n * phi) where phi = (1 + sqrt(5)) / 2. So, we run a loop and find the first n terms of the sequence.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;`` ` `// Function to print the first n terms``// of the lower Wythoff sequence``void` `lowerWythoff(``int` `n)``{`` ` `    ``// Calculate value of phi``    ``double` `phi = (1 + ``sqrt``(5)) / 2.0;`` ` `    ``// Find the numbers``    ``for` `(``int` `i = 1; i <= n; i++) {`` ` `        ``// a(n) = floor(n * phi)``        ``double` `ans = ``floor``(i * phi);`` ` `        ``// Print the nth numbers``        ``cout << ans;`` ` `        ``if` `(i != n)``            ``cout << ``", "``;``    ``}``}`` ` `// Driver code``int` `main()``{``    ``int` `n = 5;`` ` `    ``lowerWythoff(n);`` ` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `GFG``{`` ` `// Function to print the first n terms``// of the lower Wythoff sequence``static` `void` `lowerWythoff(``int` `n)``{`` ` `    ``// Calculate value of phi``    ``double` `phi = (``1` `+ Math.sqrt(``5``)) / ``2.0``;`` ` `    ``// Find the numbers``    ``for` `(``int` `i = ``1``; i <= n; i++) ``    ``{`` ` `        ``// a(n) = floor(n * phi)``        ``double` `ans = Math.floor(i * phi);`` ` `        ``// Print the nth numbers``        ``System.out.print((``int``)ans);`` ` `        ``if` `(i != n)``            ``System.out.print(``" , "``);``    ``}``}`` ` `// Driver code``public` `static` `void` `main(String[] args) ``{``    ``int` `n = ``5``;`` ` `    ``lowerWythoff(n);``}``}`` ` `// This code is contributed by 29AjayKumar`

## Python3

 `# Python3 implementation of the approach `` ` `# from math import sqrt,floor``from` `math ``import` `sqrt, floor`` ` `# Function to print the first n terms ``# of the lower Wythoff sequence ``def` `lowerWythoff(n) : `` ` `    ``# Calculate value of phi ``    ``phi ``=` `(``1` `+` `sqrt(``5``)) ``/` `2``; `` ` `    ``# Find the numbers ``    ``for` `i ``in` `range``(``1``, n ``+` `1``) :`` ` `        ``# a(n) = floor(n * phi) ``        ``ans ``=` `floor(i ``*` `phi); `` ` `        ``# Print the nth numbers ``        ``print``(ans,end``=``""); `` ` `        ``if` `(i !``=` `n) :``            ``print``( ``", "``,end ``=` `""); `` ` `# Driver code ``if` `__name__ ``=``=` `"__main__"` `: `` ` `    ``n ``=` `5``; ``    ``lowerWythoff(n);`` ` `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach``using` `System;`` ` `class` `GFG``{``     ` `// Function to print the first n terms``// of the lower Wythoff sequence``static` `void` `lowerWythoff(``int` `n)``{`` ` `    ``// Calculate value of phi``    ``double` `phi = (1 + Math.Sqrt(5)) / 2.0;`` ` `    ``// Find the numbers``    ``for` `(``int` `i = 1; i <= n; i++) ``    ``{`` ` `        ``// a(n) = floor(n * phi)``        ``double` `ans = Math.Floor(i * phi);`` ` `        ``// Print the nth numbers``        ``Console.Write((``int``)ans);`` ` `        ``if` `(i != n)``            ``Console.Write(``" , "``);``    ``}``}`` ` `// Driver code``static` `public` `void` `Main ()``{``    ``int` `n = 5;`` ` `    ``lowerWythoff(n);``}``}`` ` `// This code is contributed by ajit.`
Output:
```1, 3, 4, 6, 8
```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up