Encuentre la distancia recorrida para recolectar artículos a distancias iguales

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *