problema de la rana

Estaba aburrido y me coloque a revisar una demo de esto de pruebas de programador y pues hice el problema de la rana.

una pequeña rana quiere llegar al otro lado del camina. la rana se encuentra en la posiciónX y quiere llegar a una distancia igual o mayor a Y. la ramita solo puede saltar siempre una distancia D.

Se necesita contar el mínimo numero de saltos que necesita la rana para llegar a Y. se necesita construir una función del tipo:

int solution(int X, int Y, int D)

Que dado tres números enteros X,Y y D , retorne el mínimo numero de saltos hacia una distancia igual o mayor a Y.

Como ejemplo daban algo similar a esto:

X = 25
Y = 100
D = 29

La función retornaría 3 porque la ramita hace el siguiente proceso;
  • primer salto queda en (25 + 29)= 54
  • segundo salto (25 + 29 + 29) = 83
  • tercer salto (25 + 29 + 29 + 29) = 112
Se asume que:
  • X, Y y D son enteros de rango desde el 1 al 1.000.000.000
  • X ≤ Y
  • La complejidad debe ser de O(1)

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int salto(int x,int y,int d);
int main(int argc,char *argv[])
{
 printf("saltos :%i\n",salto(atoi(argv[1]),atoi(argv[2]),atoi(argv[3])));
 return 0;
}
/**Solucion**/
int salto(int x,int y,int d){
int div,mod;
div=(y-x)/d;
mod=(y-x)%d;
 if(0<mod)
 return (div+1);
 else
 return div;
}

Lo pueden compilar así gcc -W saltos.c -o saltos y ejecutar ./saltos 25 100 29

No comments: