给定整数N ,任务是打印Lower Wythoff序列的前N个项。
例子:
Input: N = 5
Output: 1, 3, 4, 6, 8
Input: N = 10
Output: 1, 3, 4, 6, 8, 9, 11, 12, 14, 16
方法:低位Wythoff序列是第n个项为a(n)= floor(n * phi)的序列,其中phi =(1 + sqrt(5))/ 2 。因此,我们运行一个循环并找到序列的前n个项。
下面是上述方法的实现:
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.
Javascript
输出:
1, 3, 4, 6, 8
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。