Se está desarrollando una carrera en la que se colocan varias piedras en un camino. Se coloca un cubo en el punto de inicio de la carrera, que está a 5 unidades de la primera piedra. Las otras piedras están a 3 unidades de distancia entre sí y se encuentran en línea recta una tras otra. Es decir, la distancia entre la 1ª y la 2ª piedra es de 3 unidades, entre la 3ª y la 4ª piedra también es de 3 unidades y así sucesivamente. El competidor comienza desde el balde, recoge la piedra más cercana, regresa y pone esa piedra en el balde, luego vuelve a correr para recoger la siguiente piedra más cercana, corre hacia atrás y la pone en el balde. De esta manera se continúa el proceso hasta que se hayan puesto todas las piedras en el balde.
Ahora, si hay n piedras en el suelo, ¿cuánta distancia recorrerá el competidor para completar todo el proceso?
Ejemplos:
Input : n = 3 Output : Distance = 48 Explanation = 2*5 + 2(5 + 3) + 2(5 + 3 + 3) = 10 + 16 + 22 = 48 Input : n = 5 Output : Distance = 110 Explanation = 2*5 + 2(5 + 3) + 2(5 + 3 + 3) + 2(5 + 3 + 3 + 3) + 2(5 + 3 + 3 + 3 + 3) = 10 + 16 + 22 + 28 + 34 = 110
Observando el patrón:
Distancia recorrida por el competidor para recoger la primera piedra = 2 * 5
Distancia recorrida por el competidor para recoger la segunda piedra = 2(5 + 3)
Distancia recorrida por el competidor para recoger la tercera piedra = 2(5 + 3 + 3)
= 2(5 + ( 2 * 3))
Distancia recorrida por el competidor para recoger la cuarta piedra = 2(5 + 3 + 3 + 3)
= 2(5 + (3 * 3))
Distancia recorrida por el competidor para recoger la quinta piedra = 2(5 + 3 + 3 + 3 + 3)
= 2(5 + (4 * 3))
.
.
.
Distancia recorrida por el competidor para recoger la n-ésima piedra = 2(5 + 3 + 3 + ……. + (n-1) veces)
= 2(5 + (n-1) *3)
Por lo tanto, distancia total recorrida por el competidor = suma de todas las distancias anteriores
= (2 * 5) + 2(5 + 3) + 2(5 + (2 * 3)) + 2(5 + (3 * 3)) + ………….. + 2 (5 + (n-1) *3)
= 2(5 + (5 + 3) + (5 + (2 * 3)) + (5 + (3 * 3)) + ………………. + (5 + (n-1) * 3)
= 2(5 + 5 + 5 …… + n veces) + (3 + (2 * 3) + (3 * 3) + ……… + (n-1) * 3)
= 2(5n + 3(1 + 2 + 3 + ……………. + n-1))
= 2(5n + 3/2[(n-1)*(n-1 + 1)] )
= 2(5n + 3/2[ (n-1)*n])
= 2(5n + 3/2(n 2 – n))
= 10n + 3*n 2 – 3*n
= 3*n 2 + 7*n
= n*((3 * n) + 7)
A continuación se muestra la implementación del enfoque:
C++
// C++ program to calculate // the distance for given problem #include <bits/stdc++.h> using namespace std; // function to calculate the // distance int find_distance(int n) { return n * ((3 * n) + 7); } // Driver program int main() { int n = 5; cout << "Distance = " << find_distance(n); return 0; }
Java
// Java program to calculate the // distance for given problem class demo { // function to calculate // the distance public static int find_distance(int n) { return n * (3 * n + 7); } // Driver program public static void main(String args[]) { int n = 5; System.out.print("Distance = "); System.out.println(find_distance(n)); } }
Python3
# Python3 code to calculate # the distance for given problem # function to calculate the # distance def find_distance(n): return n * ((3 * n) + 7) # main function n = 5 ans = find_distance( n ) print (ans) # This code is contributed by Saloni Gupta
C#
// C# program to calculate // the distance for given problem using System; class GFG { // function to calculate the // distance public static int find_distance(int n) { return n * ((3 * n) + 7); } // Driver program public static void Main() { int n = 5; Console.Write(find_distance(n)); } } // This code is contributed by // Smitha Dinesh Semwal
PHP
<?php //PHP program to calculate // the distance for given problem // function to calculate the // distance function find_distance($n) { return $n * ((3 * $n) + 7); } // Driver program $n = 5; echo "Distance = ", find_distance($n); // This code is contributed by aj_36 ?>
Javascript
<script> // JavaScript program to calculate the // distance for given problem // function to calculate // the distance function find_distance(n) { return n * (3 * n + 7); } // Driver code let n = 5; document.write("Distance = "); document.write(find_distance(n)); </script>
Producción:
110
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Arushi Dhamija y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA