求数列 2、15、41、80、132 的第 n 项……
原文:https://www . geesforgeks . org/find-the-n-term-of-series-2-15-41-80-132/
给定一个数字 N ,任务是找到系列 2,15,41,80,132… 的N项。 举例:
输入: N = 2 输出: 15 输入: N = 5 输出: 132
方法:从给定的系列中,第 n 项的公式可以发现为:
1st term = 2
2nd term = 2 + 1 * 13 = 15
3rd term = 15 + 2 * 13 = 41
4th term = 41 + 3 * 13 = 80
.
.
Nth term = (N - 1)th term
+ (N - 1) * 13
因此,该系列的第 N 项给出为 以下是使用递归 : 从值 N : 递归迭代找到第 N 项的步骤
- 基本情况:如果递归调用的值是 1,那么它就是数列的第一项。因此,从函数返回 2。
if(N == 1)
return 2;
- 递归调用:如果不满足基本情况,则根据系列: 的第 n 项从函数中递归迭代
(N - 1) * 13 + func(N - 1);
- Return 语句:每次递归调用时(基本情况除外),返回递归函数进行下一次迭代。
return ((13 * (N - 1))
+ func(N, i + 1));
以下是上述方法的实现:
C++
// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
// Recursive function to find Nth term
int nthTerm(int N)
{
// Base Case
if (N == 1) {
return 2;
}
// Recursive Call according to
// Nth term of the series
return ((N - 1) * 13)
+ nthTerm(N - 1);
}
// Driver Code
int main()
{
// Input Nth term
int N = 17;
// Function call
cout << nthTerm(N) << endl;
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java program for the above approach
class GFG{
// Recursive function to find Nth term
static int nthTerm(int N)
{
// Base Case
if (N == 1)
{
return 2;
}
// Recursive Call according to
// Nth term of the series
return ((N - 1) * 13) +
nthTerm(N - 1);
}
// Driver Code
public static void main(String[] args)
{
// Input Nth term
int N = 17;
// Function call
System.out.print(nthTerm(N) + "\n");
}
}
// This code is contributed by 29AjayKumar
Python 3
# Python 3 program for the above approach
# Recursive function to find Nth term
def nthTerm(N):
# Base Case
if (N == 1):
return 2
# Recursive Call according to
# Nth term of the series
return ((N - 1) * 13) + nthTerm(N - 1)
# Driver Code
if __name__ == '__main__':
# Input Nth term
N = 17
# Function call
print(nthTerm(N))
# This code is contributed by Bhupendra_Singh
C
// C# program for the above approach
using System;
public class GFG{
// Recursive function to find Nth term
static public int nthTerm(int N)
{
// Base Case
if (N == 1)
{
return 2;
}
// Recursive Call according to
// Nth term of the series
return ((N - 1) * 13) + nthTerm(N - 1);
}
// Driver Code
static public void Main ()
{
// Input Nth term
int N = 17;
// Function call
Console.WriteLine(nthTerm(N));
}
}
//This code is contributed by shubhamsingh10
java 描述语言
<script>
// javascript program for the above approach
// Recursive function to find Nth term
function nthTerm( N)
{
// Base Case
if (N == 1) {
return 2;
}
// Recursive Call according to
// Nth term of the series
return ((N - 1) * 13)
+ nthTerm(N - 1);
}
// Driver Code
// Input Nth term
let N = 17;
// Function call
document.write( nthTerm(N) );
// This code is contributed by Rajput-Ji
</script>
Output
1770
动态编程(使用记忆自顶向下):
C++
// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
int static dp[1001];
// function to find Nth term
int nthTerm(int N)
{
// Base Case
if (N == 1) {
return 2;
}
// If a value already present,
// return it
if(dp[N] != -1) {
return dp[N];
}
// Recursive Call according to
// Nth term of the series and
// store it in dp
dp[N] = ((N - 1) * 13) + nthTerm(N - 1);
// Return dp
return dp[N];
}
// Driver Code
int main()
{
// Input Nth term
int N = 17;
memset(dp, -1, sizeof(dp));
// Function call
cout << nthTerm(N) << endl;
return 0;
}
// This code is contributed by Samim Hossain Mondal.
Java 语言(一种计算机语言,尤用于创建网站)
// Java implementation of above approach
import java.util.*;
public class GFG{
static int []dp = new int[1001];
// function to find Nth term
static int nthTerm(int N)
{
// Base Case
if (N == 1) {
return 2;
}
// If a value already present,
// return it
if(dp[N] != -1) {
return dp[N];
}
// Recursive Call according to
// Nth term of the series and
// store it in dp
dp[N] = ((N - 1) * 13) + nthTerm(N - 1);
// Return dp
return dp[N];
}
// Driver code
public static void main(String []args)
{
// Input Nth term
int N = 17;
for(int i = 0; i < 1001; i++) {
dp[i] = -1;
}
System.out.println(nthTerm(N));
}
}
// This code is contributed by Samim Hossain Mondal.
计算机编程语言
# Pythonnprogram for the above approach
# Taking the matrix as globally
dp = [-1 for i in range(1001)]
# Function to find Nth term
def nthTerm(N):
# Base Case
if (N == 1):
return 2
# If a value already present,
# return it
if(dp[N] != -1):
return dp[N]
# Recursive Call according to
# Nth term of the series and
# store it in dp
dp[N] = ((N - 1) * 13) + nthTerm(N - 1)
# Return dp
return dp[N]
# Driver Code
if __name__ == '__main__':
# Input Nth term
N = 17
# Function call
print(nthTerm(N))
# This code is contributed by Samim Hossain Mondal.
C
// C# implementation of above approach
using System;
class GFG
{
static int []dp = new int[1001];
// function to find Nth term
static int nthTerm(int N)
{
// Base Case
if (N == 1) {
return 2;
}
// If a value already present,
// return it
if(dp[N] != -1) {
return dp[N];
}
// Recursive Call according to
// Nth term of the series and
// store it in dp
dp[N] = ((N - 1) * 13) + nthTerm(N - 1);
// Return dp
return dp[N];
}
// Driver code
public static void Main()
{
// Input Nth term
int N = 17;
for(int i = 0; i < 1001; i++) {
dp[i] = -1;
}
Console.Write(nthTerm(N));
}
}
// This code is contributed by Samim Hossain Mondal.
java 描述语言
<script>
// Javascript program for the above approach
let dp = [];
// function to find Nth term
function nthTerm(N)
{
// Base Case
if (N == 1) {
return 2;
}
// If a value already present,
// return it
if(dp[N] != -1) {
return dp[N];
}
// Recursive Call according to
// Nth term of the series and
// store it in dp
dp[N] = ((N - 1) * 13) + nthTerm(N - 1);
// Return dp
return dp[N];
}
// Driver Code
// Input Nth term
let N = 17;
for(let i = 0; i < 1001; i++) {
dp[i] = -1;
}
// Function call
document.write(nthTerm(N));
// This code is contributed by Samim Hossain Mondal.
</script>
Output
1770
时间复杂度: O(N)
辅助空间: O(N)
版权属于:月萌API www.moonapi.com,转载请注明出处