Posición después de dar N pasos a la derecha y a la izquierda de forma alterna

Dados tres enteros N, A y B. Una persona está parada en la coordenada 0-ésima y mueve A pasos a la derecha en el primer paso, B pasos a la izquierda en el segundo paso, y así sucesivamente. La tarea es averiguar en qué coordenada estará después de N pasos. 
Ejemplos: 
 

Entrada: N = 3, A = 5 y B = 2 
Salida:
5 a la derecha, 2 a la izquierda y 5 a la derecha, por lo tanto la persona terminará en 8. 
Entrada: N = 5, A = 1 y B = 10 
Salida: -17 
 

Enfoque: dado que la persona da el número impar de pasos a la derecha y el número par de pasos a la izquierda, tenemos que encontrar la diferencia numérica en pasos en cualquier dirección. Por lo tanto, la fórmula obtenida será así: 
 

[((n+1)/2)*a - (n/2)*b]

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to find the last coordinate
// where it ends his journey
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the last destination
int lastCoordinate(int n, int a, int b)
{
    return ((n + 1) / 2) * a - (n / 2) * b;
}
 
// Driver Code
int main()
{
    int n = 3, a = 5, b = 2;
    cout << lastCoordinate(n, a, b);
 
    return 0;
}

Java

// Java program to find the last coordinate
// where it ends his journey
import java.util.*;
 
class solution
{
 
// Function to return the last destination
static int lastCoordinate(int n, int a, int b)
{
    return ((n + 1) / 2) * a - (n / 2) * b;
}
 
// Driver Code
public static void main(String args[])
{
    int n = 3, a = 5, b = 2;
    System.out.println(lastCoordinate(n, a, b));
 
}
}

Python

# Python3 program to find the
# last coordinate where it
# ends his journey
 
# Function to return the
# last destination
def lastCoordinate(n, a, b):
    return (((n + 1) // 2) *
         a - (n // 2) * b)
 
# Driver Code
n = 3
a = 5
b = 2
 
print(lastCoordinate(n, a, b))
 
# This code is contributed
# by Sanjit_Prasad

C#

// C# program to find the last coordinate
// where it ends his journey
using System;
 
class GFG
{
 
// Function to return the last destination
public static int lastCoordinate(int n,
                                 int a, int b)
{
    return ((n + 1) / 2) * a - (n / 2) * b;
}
 
// Driver Code
public static void Main(string[] args)
{
    int n = 3, a = 5, b = 2;
    Console.WriteLine(lastCoordinate(n, a, b));
}
}
 
// This code is contributed by Shrikant13

PHP

<?php
// PHP program to find the last coordinate
// where it ends his journey
 
// Function to return the last destination
function lastCoordinate($n, $a, $b)
{
    return (($n + 1) / 2) * $a -
            (int)($n / 2) * $b;
}
 
// Driver Code
$n = 3; $a = 5; $b = 2;
echo lastCoordinate($n, $a, $b);
 
// This code is contributed by inder_verma..
?>

Javascript

<script>
 
// Javascript program to find
// the last coordinate
// where it ends his journey
 
// Function to return the last destination
function lastCoordinate(n, a, b)
{
    return (parseInt(n + 1) / 2) * a -
            parseInt(n / 2) * b;
}
 
// Driver Code
    let n = 3, a = 5, b = 2;
    document.write(lastCoordinate(n, a, b));
 
</script>
Producción: 

8

 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por swetankmodi 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 *