Advertisement
JeffGrigg

number of ways to climb stairs answer

Aug 17th, 2019
897
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.71 KB | None | 0 0
  1. import junit.framework.TestCase;
  2.  
  3. // Question from https://www.facebook.com/groups/javaharikrishna/permalink/2189431594515722/
  4.  
  5. public class ClimbStairsTest extends TestCase {
  6.  
  7.     private static int waysToClimbStairs(final int numberOfStairs) {
  8.         if (numberOfStairs == 0) {
  9.             return 1;   // There's only one way: You're already there, with zero steps!
  10.         } else if (numberOfStairs == 1) {
  11.             return 1;   // 1 step only
  12. //        } else if (numberOfStairs == 2) {
  13. //            return 2;   // 1+1 and 2
  14.         } else {
  15.             final int solutionAfterGoingUpOneStair = waysToClimbStairs(numberOfStairs - 1);
  16.             final int solutionAfterGoingUpTwoStairs = waysToClimbStairs(numberOfStairs - 2);
  17.             return solutionAfterGoingUpOneStair + solutionAfterGoingUpTwoStairs;
  18.         }
  19.     }
  20.  
  21.     public void test() {
  22.         assertUniqueWaysToClimbStairs(1, 0);    // There's only one way: You're already there, with zero steps!
  23.         assertUniqueWaysToClimbStairs(1, 1);
  24.         assertUniqueWaysToClimbStairs(2, 2);
  25.         assertUniqueWaysToClimbStairs(3, 3);
  26.         assertUniqueWaysToClimbStairs(5, 4);
  27.         assertUniqueWaysToClimbStairs(8, 5);
  28.         assertUniqueWaysToClimbStairs(13, 6);
  29.         assertUniqueWaysToClimbStairs(21, 7);
  30.         assertUniqueWaysToClimbStairs(34, 8);
  31.         assertUniqueWaysToClimbStairs(55, 9);
  32.         assertUniqueWaysToClimbStairs(89, 10);
  33.         // Turns out, it's the Fibonacci Sequence.
  34.     }
  35.  
  36.     private static void assertUniqueWaysToClimbStairs(final int expectedWays, final int numberOfStairs) {
  37.         assertEquals("for <" + numberOfStairs + "> stairs;", expectedWays, waysToClimbStairs(numberOfStairs));
  38.     }
  39.  
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement