# Frog Jump time complexity

I have tried to work out the Frog Jump task on Codility. The algorithm for solving this is rather simple but the maximum score I am able to achieve is 55% (also 44% with modulus operations).

A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D.

Count the minimal number of jumps that the small frog must perform to reach its target.

Write a function: class Solution { public int solution(int X, int Y, int D); } that, given three integers X, Y and D, returns the minimal number of jumps from position X to a position equal to or greater than Y.

public static int solution(int X, int Y, int D)
{
int count = 0;

//55%
if (X == Y)
{
return 0;
}
else
{
while (X < Y)
{
X += D;
count++;
}
return count;
}
}


I have read in a place that switch statements can outperform if conditions but couldn't find a way to make a switch statement out of this, also tried to get the answer recursively, but was only able to put down the base case..

Appreciate hints, help, suggestions at what should I look for to be optimal with this method.

• Wouldn't this be return (int)Math.Ceiling((float)(Y - X) / D);? – 410_Gone May 31 at 20:26
• It is.. I have definitely have to read thoroughly the Math class.. Thanks! – Kris May 31 at 20:50
• No problem, glad it helped. :) – 410_Gone May 31 at 20:52
• @DerKommissar could you please explain in terms of time complexity why using Math.Ceiling is better in terms of if/else conditions? And also add your comment as an answers so I can mark it as such. Thanks again. – Kris Jun 1 at 11:48