Dado un número N. La tarea es escribir un programa para encontrar el N-ésimo término en la siguiente serie:
a, b, b, c, c, c, d, d, d, d, …..
Ejemplos :
Input : 12 Output : e Input : 288 Output : x
La idea es utilizar la fórmula de suma AP para encontrar la solución a este problema. Claramente, la serie se representa como 1a, 2b, 3c, 4d, 5e, etc. Por lo que es un AP.
Ahora podemos usar la fórmula de la suma AP:
sum = (n/2)*(a + (n-1)*d)
Que en este caso se convierte en suma = (n(n+1))/2 (ya que a = 1 y d = 1) donde ‘suma’ aquí es el N-ésimo término dado.
A continuación se muestra la implementación del enfoque anterior:
C++
// CPP program to find nth term of the // given series #include <bits/stdc++.h> using namespace std; // Function to find nth term of the // given series void findNthTerm(int n) { // Let us find roots of equation x * (x + 1)/2 = n n = n * 2; int a = 1, b = 1, c = -1 * n; int d = b * b - 4 * a * c; double sqrt_val = sqrt(abs(d)); int x1 = (double)(-b + sqrt_val) / (2 * a); int x2 = (double)(-b - sqrt_val) / (2 * a); if (x1 >= 1) cout << (char)('a' + x1) << endl; else if (x2 >= 1) cout << (char)('a' + x2) << endl; } // Driver program int main() { int n = 12; findNthTerm(n); n = 288; findNthTerm(n); return 0; }
Java
// Java program to find nth // term of the given series import java.io.*; class GFG { // Function to find nth term // of the given series static void findNthTerm(int n) { // Let us find roots of // equation x * (x + 1)/2 = n n = n * 2; int a = 1, b = 1, c = -1 * n; int d = b * b - 4 * a * c; double sqrt_val = Math.sqrt(Math.abs(d)); int x1 = (int)((-b + sqrt_val) / (2 * a)); int x2 = (int)((-b - sqrt_val) / (2 * a)); if (x1 >= 1) System.out.println((char)('a' + x1)); else if (x2 >= 1) System.out.println((char)('a' + x2)); } // Driver Code public static void main(String[] args) { int n = 12; findNthTerm(n); n = 288; findNthTerm(n); } } // This code has been contributed // by anuj_67.
Python 3
# Python 3 program to find nth # term of the given series import math # Function to find nth term # of the given series def findNthTerm(n): # Let us find roots of # equation x * (x + 1)/2 = n n = n * 2 a = 1 b = 1 c = -1 * n d = b * b - 4 * a * c sqrt_val = math.sqrt(abs(d)) x1 = (-b + sqrt_val) // (2 * a) x2 = (-b - sqrt_val) // (2 * a) x1 = int(x1) x2 = int(x2) # ASCII of 'a' is 97 if (x1 >= 1): print(chr(97+x1)) elif (x2 >= 1): print(chr(97+x2)) # Driver Code if __name__ == "__main__": n = 12 findNthTerm(n) n = 288 findNthTerm(n) # This code is contributed # by ChitraNayal
C#
// C# program to find nth // term of the given series using System; public class GFG { // Function to find nth term // of the given series static void findNthTerm(int n) { // Let us find roots of // equation x * (x + 1)/2 = n n = n * 2; int a = 1, b = 1, c = -1 * n; int d = b * b - 4 * a * c; double sqrt_val = Math.Sqrt(Math.Abs(d)); int x1 = (int)((-b + sqrt_val) / (2 * a)); int x2 = (int)((-b - sqrt_val) / (2 * a)); if (x1 >= 1) Console.WriteLine((char)('a' + x1)); else if (x2 >= 1) Console.WriteLine((char)('a' + x2)); } // Driver Code static public void Main(String[] args) { int n = 12; findNthTerm(n); n = 288; findNthTerm(n); } } // contributed by Arnab Kundu
PHP
<?php // PHP program to find nth // term of the given series // Function to find nth term // of the given series function findNthTerm($n) { // Let us find roots of // equation x * (x + 1)/2 = n $n = $n * 2; $a = 1; $b = 1; $c = -1 * $n; $d = $b * $b - 4 * $a * $c; $sqrt_val = sqrt(abs($d)); $x1 = (-$b + $sqrt_val) / (2 * $a); $x2 = (-$b - $sqrt_val) / (2 * $a); // Ascii of 'a' is 97 if((int)$x1 >= 1) echo chr(97+$x1) . "\n"; else if ((int)$x2 >= 1) echo chr(97+$x2), "\n"; } // Driver Code $n = 12; findNthTerm($n); $n = 288; findNthTerm($n); // This Code is contributed by mits ?>
Javascript
<script> // Javascript program to find nth // term of the given series const str = "abcdefghijklmnopqrstuvwxyz"; // Function to find nth term // of the given series function findNthTerm( n) { // Let us find roots of // equation x * (x + 1)/2 = n n = n * 2; let a = 1, b = 1, c = -1 * n; let d = b * b - 4 * a * c; let sqrt_val = Math.sqrt(Math.abs(d)); let x1 = parseInt( ((-b + sqrt_val) / (2 * a))); let x2 = parseInt( ((-b - sqrt_val) / (2 * a))); if (x1 >= 1) document.write(str[x1]+"<br/>"); else if (x2 >= 1) document.write(str[x2]+"<br/>"); } // Driver Code let n = 12; findNthTerm(n); n = 288; findNthTerm(n); // This code is contributed by shikhasingrajput </script>
Producción:
e x
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA