给定数字N。任务是编写一个程序来查找以下系列中的第N个术语:
0, 0, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8,…..
例子:
Input : N = 10
Output : 4
Input : N = 7
Output : 6
仔细观察,您会发现该系列是2个系列的混合体:
- 给定序列中奇数位置的项从0开始以递增顺序形成偶数序列。例如,0,2,4,6,.。
- 给定系列中偶数位置的项是使用公式(previousTerm / 2)从上一项导出的。也就是说,处于偶数位置的条款是其前一条款的一半。
现在,众所周知,每个奇数位置项均形成一个从0开始的偶数序列,每个偶数位置项均是前一个奇数位置项的一半。
因此,首先检查输入数字N是偶数还是奇数。如果是奇数,则设置N =(N / 2)+ 1(因为有两个平行运行的级数),并使用公式2 *(N-1)来找到第N个项(N-1是因为级数从0开始) 。
同样,如果N为偶数,则设置N = N / 2,使用前面的公式并将答案除以2。
下面是上述方法的实现:
C++
// CPP program to find N-th term
// in the series
#include
#include
using namespace std;
// Function to find N-th term
// in the series
void findNthTerm(int n)
{
// If n is even
if (n % 2 == 0) {
n = n / 2;
n = 2 * (n - 1);
cout << n / 2 << endl;
}
// If n is odd
else {
n = (n / 2) + 1;
n = 2 * (n - 1);
cout << n << endl;
}
}
// Driver code
int main()
{
int X = 10;
findNthTerm(X);
X = 7;
findNthTerm(X);
return 0;
}
Java
// Java program to find N-th term
// in the series
// Function to find N-th term
// in the series
class GFG
{
static void findNthTerm(int n)
{
// If n is even
if (n % 2 == 0)
{
n = n / 2;
n = 2 * (n - 1);
System.out.println(n / 2);
}
// If n is odd
else
{
n = (n / 2) + 1;
n = 2 * (n - 1);
System.out.println(n);
}
}
// Driver code
public static void main(String args[])
{
int X = 10;
findNthTerm(X);
X = 7;
findNthTerm(X);
}
}
// This code is contributed by Subhadeep
Python 3
# Python 3 program to find N-th term
# in the series
# Function to find N-th term
# in the series
def findNthTerm(n):
# If n is even
if (n % 2 == 0):
n = n // 2
n = 2 * (n - 1)
print( n // 2)
# If n is odd
else:
n = (n // 2) + 1
n = 2 * (n - 1)
print(n)
# Driver code
if __name__ == "__main__":
X = 10
findNthTerm(X);
X = 7;
findNthTerm(X)
C#
// C# program to find N-th term
// in the series
using System;
// Function to find N-th term
// in the series
class GFG
{
static void findNthTerm(int n)
{
// If n is even
if (n % 2 == 0)
{
n = n / 2;
n = 2 * (n - 1);
Console.Write(n / 2);
}
// If n is odd
else
{
n = (n / 2) + 1;
n = 2 * (n - 1);
Console.Write(n);
}
}
// Driver code
public static void Main()
{
int X = 10;
findNthTerm(X);
Console.Write("\n");
X = 7;
findNthTerm(X);
}
}
// This code is contributed
// by Smitha
PHP
Javascript
输出:
4
6
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。