Programe para encontrar o enésimo termo das séries 1, 2, 11, 12, 21….
Dado um número N, a tarefa é encontrar o enésimo termo da série:
1, 2, 11, 12, 21 ...
Exemplos:
Input : N = 2 Output : 2 Input : N = 5 Output : 21
Abordagem:
A ideia é baseada no fato de que o valor do último dígito se alterna na série. Por exemplo, se o último dígito do iº número for 1, então o último dígito do (i-1) th e (i + 1) th números deve ser 2.
Portanto, crie uma array de tamanho (n + 1) e pressione 1 e 2 (esses dois são sempre os dois primeiros elementos da série) a ele.
Portanto, o iº termo da array é:
1) Se i for ímpar,
arr [i] = arr [i / 2] * 10 + 1;
2) Se i for par,
arr [i] = arr [(i / 2) -1] * 10 + 2;
No último retorno arr [n].
Abaixo está a implementação da ideia acima:
// C++ program to find
// the N-th term in the series
// 1, 2, 11, 12, 21...
#include <bits/stdc++.h>
using namespace std;
// Function to find N-th number in series
int printNthElement(int N)
{
// create an array of size (N+1)
int arr[N + 1];
arr[1] = 1;
arr[2] = 2;
for (int i = 3; i <= N; i++) {
// If i is odd
if (i % 2 != 0) {
arr[i] = arr[i / 2] * 10 + 1;
}
else {
arr[i] = arr[(i / 2) - 1] * 10 + 2;
}
}
return arr[N];
}
// Driver code
int main()
{
// Get N
int N = 5;
// Get Nth term
cout << printNthElement(N);
return 0;
}
// Java program to find
// the N-th term in the series
// 1, 2, 11, 12, 21...
class FindNth {
// Function to find n-th number in series
static int printNthElement(int n)
{
// create an array of size (n+1)
int arr[] = new int[n + 1];
arr[1] = 1;
arr[2] = 2;
for (int i = 3; i <= n; i++) {
// If i is odd
if (i % 2 != 0)
arr[i] = arr[i / 2] * 10 + 1;
else
arr[i] = arr[(i / 2) - 1] * 10 + 2;
}
return arr[n];
}
// main function
public static void main(String[] args)
{
int n = 5;
System.out.println(printNthElement(n));
}
}
# Python3 program to find
# the N-th term in the series
# 1, 2, 11, 12, 21...
# Return n-th number in series
def printNthElement(n) :
# create an array of size (n + 1)
arr =[0] * (n + 1);
arr[1] = 1
arr[2] = 2
for i in range(3, n + 1) :
# If i is odd
if (i % 2 != 0) :
arr[i] = arr[i // 2] * 10 + 1
else :
arr[i] = arr[(i // 2) - 1] * 10 + 2
return arr[n]
# Driver code
n = 5
print(printNthElement(n))
// C# program to find
// the N-th term in the series
// 1, 2, 11, 12, 21...
using System;
class GFG
{
// Function to find n-th
// number in series
static int printNthElement(int n)
{
// create an array of size (n+1)
int []arr = new int[n + 1];
arr[1] = 1;
arr[2] = 2;
for (int i = 3; i <= n; i++)
{
// If i is odd
if (i % 2 != 0)
arr[i] = arr[i / 2] * 10 + 1;
else
arr[i] = arr[(i / 2) - 1] * 10 + 2;
}
return arr[n];
}
// Driver Code
public static void Main()
{
int n = 5;
Console.WriteLine(printNthElement(n));
}
}
// This code is contributed
// by inder_verma
<?php
// PHP program to find
// the N-th term in the series
// 1, 2, 11, 12, 21...
// Function to find N-th
// number in series
function printNthElement($N)
{
// create an array of size (N+1)
$arr = array($N + 1);
$arr[1] = 1;
$arr[2] = 2;
for ( $i = 3; $i <= $N; $i++)
{
// If i is odd
if ($i % 2 != 0)
{
$arr[$i] = $arr[$i / 2] *
10 + 1;
}
else
{
$arr[$i] = $arr[($i / 2) - 1] *
10 + 2;
}
}
return $arr[$N];
}
// Driver code
$N = 5;
// Get Nth term
echo printNthElement($N);
// This code is contributed
// by Mahadev99
?>
<script>
// Javascript program to find
// the N-th term in the series
// 1, 2, 11, 12, 21...
// Function to find n-th number in series
function printNthElement(n)
{
// create an array of size (n+1)
let arr = new Array(n + 1);
arr[1] = 1;
arr[2] = 2;
for (let i = 3; i <= n; i++) {
// If i is odd
if (i % 2 != 0)
arr[i] = arr[parseInt(i / 2, 10)] * 10 + 1;
else
arr[i] = arr[parseInt(i / 2, 10) - 1] * 10 + 2;
}
return arr[n];
}
let n = 5;
document.write(printNthElement(n));
// This code is contributed by vaibhavrabadiya117.
</script>
21
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva