Dado un número N , la tarea es encontrar el número de cartas necesarias para hacer un castillo de naipes de N niveles.
Ejemplos:
Entrada: N = 3
Salida: 15
De la imagen de arriba, está claro que para House of Cards para 3 niveles se necesitan 15 cartas
Entrada: N = 2
Salida: 7
Acercarse:
- Si observamos cuidadosamente, entonces se formará una serie como se muestra a continuación en la que el i-ésimo elemento denota el número de cartas triangulares necesarias para hacer una pirámide de i niveles:
2, 7, 15, 26, 40, 57, 77, 100, 126, 155………y así sucesivamente.
- La serie anterior es un método de series de diferencia donde las diferencias están en AP como 5, 8, 11, 14……. y así.
- Por tanto, el término n de la serie será:
nth term = 2 + {5 + 8 + 11 +14 +.....(n-1) terms} = 2 + (n-1)*(2*5+(n-1-1)*3)/2 = 2 + (n-1)*(10+(n-2)*3)/2 = 2 + (n-1)*(10+3n-6)/2 = 2 + (n-1)*(3n+4)/2 = n*(3*n+1)/2;
- Por tanto el número de cartas necesarias para construir un castillo de naipes de N niveles será:
A continuación se muestra la implementación del enfoque anterior:
CPP
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std; // Function to find number of cards needed int noOfCards(int n) { return n * (3 * n + 1) / 2; } // Driver Code int main() { int n = 3; cout << noOfCards(n) << ", "; return 0; }
Java
// Java implementation of the above approach import java.lang.*; class GFG { // Function to find number of cards needed public static int noOfCards(int n) { return n * (3 * n + 1) / 2; } // Driver Code public static void main(String args[]) { int n = 3; System.out.print(noOfCards(n)); } } // This code is contributed by shubhamsingh10
Python3
# Python3 implementation of the above approach # Function to find number of cards needed def noOfCards(n): return n * (3 * n + 1) // 2 # Driver Code n = 3 print(noOfCards(n)) # This code is contributed by mohit kumar 29
C#
// C# implementation of the above approach using System; class GFG { // Function to find number of cards needed public static int noOfCards(int n) { return n * (3 * n + 1) / 2; } // Driver Code public static void Main(String []args) { int n = 3; Console.Write(noOfCards(n)); } } // This code is contributed by 29AjayKumar
Javascript
<script> // Javascript implementation of the above approach // Function to find number of cards needed function noOfCards(n) { return parseInt(n * (3 * n + 1) / 2); } // Driver Code var n = 3; document.write(noOfCards(n)); </script>
Producción:
15
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)