给定数字N。任务是编写一个程序来查找以下系列中的第N个术语:
1, 1, 2, 3, 4, 9, 8, 27, 16, 81, 32, 243, 64, 729, 128, 2187…
例子:
Input : 4
Output : 3
Input : 11
Output : 32
仔细观察,您会发现该系列是2个系列的混合体:
- 该系列中的所有奇数项形成一个几何级数。
- 所有偶数项构成了另一个几何级数。
解决问题的方法非常简单。给定级数中的奇数位置项形成了第一项为1且公共比率为2的GP系列。类似地,给定级数中的偶数位置的项构成了第一项为1且公共比率为3的GP系列。
因此,首先检查输入数字N是偶数还是奇数。如果是偶数,则设置N = N / 2(因为有两个GP列并行运行),并使用公式r = 3的a n = a 1 ·r n-1来找到第N个项。
同样,如果N为奇数,则设置N =(n / 2)+1并与r = 2相同。
下面是上述方法的实现:
C++
// C++ program to find Nth term
// in the given Series
#include
#include
using namespace std;
// Function to find the nth term
// in the given series
void findNthTerm(int n)
{
// If input number is even
if (n % 2 == 0) {
n = n / 2;
cout << pow(3, n - 1) << endl;
}
// If input number is odd
else {
n = (n / 2) + 1;
cout << pow(2, n - 1) << endl;
}
}
// Driver Code
int main()
{
int N = 4;
findNthTerm(N);
N = 11;
findNthTerm(N);
return 0;
}
Java
// Java program to find Nth term
// in the given Series
import java.io.*;
import java.util.*;
import java.lang.*;
class GFG
{
// Function to find the nth term
// in the given series
static void findNthTerm(int n)
{
// If input number is even
if (n % 2 == 0)
{
n = n / 2;
System.out.print(Math.pow(3, n - 1) + "\n");
}
// If input number is odd
else
{
n = (n / 2) + 1;
System.out.print(Math.pow(2, n - 1) + "\n");
}
}
// Driver Code
public static void main(String[] args)
{
int N = 4;
findNthTerm(N);
N = 11;
findNthTerm(N);
}
}
// This code is contributed
// by Akanksha Rai(Abby_akku)
Python3
# Python3 program to find Nth term
# in the given Series
# Function to find the nth term
# in the given series
def findNthTerm(n):
# If input number is even
if n % 2 == 0:
n //= 2
print(3 ** (n - 1))
# If input number is odd
else:
n = (n // 2) + 1
print(2 ** (n - 1))
# Driver Code
if __name__=='__main__':
N = 4
findNthTerm(N)
N = 11
findNthTerm(N)
# This code is contributed
# by vaibhav29498
C#
// C# program to find Nth term
// in the given Series
using System;
class GFG
{
// Function to find the nth
// term in the given series
static void findNthTerm(int n)
{
// If input number is even
if (n % 2 == 0)
{
n = n / 2;
Console.WriteLine(Math.Pow(3, n - 1));
}
// If input number is odd
else
{
n = (n / 2) + 1;
Console.WriteLine(Math.Pow(2, n - 1));
}
}
// Driver Code
public static void Main()
{
int N = 4;
findNthTerm(N);
N = 11;
findNthTerm(N);
}
}
// This code is contributed
// by chandan_jnu.
PHP
Javascript
输出:
3
32
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。