QuestionAsk Questions?

Posted in : JSP-Interview Questions

A thief Muthhooswamy planned to escape from **** jail. Muthhooswamy is basically a monkey man and he is able to jump across the wall. He practiced to cross a wall and he is able to jump 'X' meters, but because of slippery wall he fall 'Y' meters after each jump. To escape from jail he has to cross 'N' number of walls where height of each wall is given in an array. Write a program to find out the total number of jumps he will make to escape from the jail.

Input Specifications

Your program must read 4 arguments (climbUp, climbDown, noOfWalls,wallHeights[]) where

climbUp is the number of metres he can jump (1<=climbUp<=10^10) climbDown is the number of metres he slides down (1<=climbDown<=10^5) noOfWalls is the number of walls he needs to jump to escape (1<=noOfWalls<=10^5) wallHeights[] is a single dimensional array where the height of each wall is provided, the ith element is (1<=i<=1000)

Output Specifications

Your program should return total number of jumps to the output variable output1 provided

Examples

Sample Input 1: 10:1:1:{10} Here Muthooswamy can jump 10 metres height but slides down by 1 metre. He has 1 wall to jump and the height of the wall is 10 metres. Since he jumps 10 metres in the first attempt he cross the wall easily in the first attempt only.

Sample Output 1: 1

Sample Input 2: 5:1:2:{9,10} Here Muthooswamy can jump 5 metres height but slides down by 1 metre. He has 2 walls to jump and the height of each wall is 9 and 10 metres respectively.

While crossing the first wall, Muthooswamy takes 2 attempts because during the first attempt he jumps 5 metres but slides down by 1 metre since he didn't cross the wall. In the next attempt he jumps 5 more metres from that position and this time he doesn't slide because he crossed the wall in this attempt because 4+5=9 and 9 metres is the actual height of the wall.

Similarly while crossing the second wall, Muthooswamy takes 3 attempts because during his second attempt on this wall, he slides down by 1 metre since 4+5=9 and the height of the wall is 10 metres. During his third attempt, Muthooswamy was able to escape from ***

Sample Output 2: 5

View Answers

October 8, 2011 at 3:27 PM

import java.io.*; import java.util.Arrays;

public class UserMainCode { //Assume following return types while writing the code for this question. public static int output1;

public static void GetJumpCount(int climbUp,int climbDown,int noOfWalls,int[] wallHeights) { while(noOfWalls>0){ output1 = jumpAmount(output1, climbUp, wallHeights[--noOfWalls], climbDown); } } private static int jumpAmount(int totalJump, int climbUp, int hight, int climbDown){ if( hight <= climbUp){ return ++totalJump; } else{ hight = hight - (climbUp - climbDown); return jumpAmount(++totalJump, climbUp, hight, climbDown); } } public static void main(String[] args) { int a[] = new int[]{10,20}; GetJumpCount(10,1,2,a); System.out.println(output1); }

}

October 8, 2011 at 3:28 PM

public class UserMainCode { public static int output1;

public static void GetJumpCount(int climbUp,int climbDown,int noOfWalls,int[] wallHeights) { while(noOfWalls>0) output1 = jumpAmount(climbUp, wallHeights[--noOfWalls], (climbUp - climbDown)); } private static int jumpAmount(int climbUp, int hight, int oneJump){ if( hight <= climbUp) return ++output1; else{ ++output1; return jumpAmount(climbUp, (hight-oneJump), oneJump); } } public static void main(String[] args) { int a[] = new int[]{10,20}; GetJumpCount(10,1,2,a); System.out.println(output1); }

}

October 8, 2011 at 3:28 PM

public class UserMainCode { public static int output1;

public static void GetJumpCount(int climbUp,int climbDown,int noOfWalls,int[] wallHeights) { while(noOfWalls>0) output1 = jumpAmount(climbUp, wallHeights[--noOfWalls], (climbUp - climbDown)); } private static int jumpAmount(int climbUp, int hight, int oneJump){ if( hight <= climbUp) return ++output1; else{ ++output1; return jumpAmount(climbUp, (hight-oneJump), oneJump); } } public static void main(String[] args) { int a[] = new int[]{10,20}; GetJumpCount(10,1,2,a); System.out.println(output1); }

}

Related Tutorials/Questions & Answers: