Recursion-1 - Coding Bat Answers

Recursion-1

CODING BAT ANSWERS IS MOVING TO A NEW AND IMPROVED SITE, PLEASE CLICK HERE TO VIEW SOLUTIONS TO EVERY JAVABAT PROBLEM AND LEARN FROM MY MISTAKES!!!!

This section includes these questions: factorial, bunnyEars, fibonacci, bunnyEars2, triangle, sumDigits, count7, count8, powerN, countX, countHi, changeXY, changePi, noX, array6, array11, array220, allStar, pairStar, endX countPairs, countAbc, count11, stringClean, countHi2, parenBit, nestParen, strCount, strCopies, strDist.

factorial

public int factorial(int n) { if( n == 1) { return 1; } else { return factorial(n-1) * n; } }

bunnyEars

public int bunnyEars(int bunnies) { if( bunnies == 0 ) return 0; else return bunnies + bunnies; }

fibonacci

public int fibonacci(int n) { if(n == 0) return 0; if(n == 1) return 1; else { return fibonacci(n - 2) + fibonacci(n - 1); } }

bunnyEars2

public int bunnyEars2(int bunnies) { if( bunnies == 0) return 0; else return bunnies + bunnies + (bunnies / 2); }

triangle

public int triangle(int rows) { if ( rows == 0) return 0; if (rows == 1) return 1; else return triangle(rows - 1) + rows; }

sumDigits

public int sumDigits(int n) { int sum; if ( n == 0) return 0; else { sum = n % 10; n = n / 10; return sumDigits( n) + sum; } }

count7

public int count7(int n) { int sum; if( n == 0) return 0; else { sum = n % 10; n = n / 10; if (sum == 7) return 1 + count7(n); else return count7(n); } }

count8

public int count8(int n) { int sum; if ( n == 0) return 0; else { sum = n % 10; n = n / 10; if ( sum == 8 && n % 10 == 8 ) return 2 + count8(n); if ( sum == 8) return 1 + count8(n); else return count8(n); } }

powerN

public int powerN(int base, int n) { if ( n == 1) return base; if ( n == 0) return 0; else return base * powerN( base, n - 1); }

countX

public int countX(String str) { int result = 0; if(str.length() == 0) { return 0; } if(str.charAt(0) == 'x') { result++; } result += countX(str.substring(1, str.length())); return result; }

countHi

public int countHi(String str) { int result = 0; if(str.length() <= 2) { if(str.equals("hi")) { return 1; } return 0; } if(str.substring(0, 2).equals("hi")) { result++; str = str.substring(2, str.length()); } else { str = str.substring(1, str.length()); } result += countHi(str); return result; }

changeXY

public String changeXY(String str) { String result = ""; if(str.length() == 0) { return ""; } if(str.charAt(0) == 'x') { result = "y"; } else { result = Character.toString(str.charAt(0)); } return result + changeXY(str.substring(1, str.length())); }

changePi

public String changePi(String str) { String result = ""; if(str.length() < 2) { return str; } if(str.charAt(0) == 'p' && str.charAt(1) == 'i') { result = "3.14"; str = str.substring(2, str.length()); } else { result = Character.toString(str.charAt(0)); str = str.substring(1, str.length()); } return result + changePi(str); }

noX

public String noX(String str) { String result = ""; if(str.length() == 0) { return ""; } if(str.charAt(0) == 'x') { result = ""; } else { result = Character.toString(str.charAt(0)); } return result + noX(str.substring(1, str.length())); }

array6

public boolean array6(int[] nums, int index) { if(index >= nums.length) { return false; } else if(nums[index] == 6) { return true; } else { return array6(nums, index + 1); } }

array11

public int array11(int[] nums, int index) { int result = 0; if(index >= nums.length) { return 0; } if(nums[index] == 11) { result++; } result += array11(nums, index + 1); return result; }

array220

public boolean array220(int[] nums, int index) { if(index >= nums.length - 1) { return false; } else if(nums[index] * 10 == nums[index + 1]) { return true; } else { return array220(nums, index + 1); } }

allStar

public String allStar(String str) { String result = ""; if(str.length() == 1 || str.length() == 0) { return str; } else { result += (Character.toString(str.charAt(0)) + "*"); } result += allStar(str.substring(1, str.length())); return result; }

pairStar

public String pairStar(String str) { String result = ""; if(str.length() <= 1) { return str; } if(str.charAt(0) == str.charAt(1)) { result += (Character.toString(str.charAt(0)) + "*"); } else { result += Character.toString(str.charAt(0)); } result += pairStar(str.substring(1, str.length())); return result; }

endX

public String endX(String str) { String result = ""; int x = countX(str); result = removeX(str); result += addX(x); return result; } public int countX(String str) { int x = 0; if(str.length() <= 0) { return 0; } if(str.charAt(0) == 'x') { x++; } x += countX(str.substring(1, str.length())); return x; } public String removeX(String str) { String result = ""; if(str.length() <= 0) { return ""; } else if(str.charAt(0) == 'x') { result += ""; } else { result += Character.toString(str.charAt(0)); } result += removeX(str.substring(1, str.length())); return result; } public String addX(int num) { if(num < 1) { return ""; } if(num == 1) { return "x"; } return "x" + addX(num - 1); }

countPairs

public int countPairs(String str) { int result = 0; if(str.length() <= 2) { return 0; } if(str.charAt(0) == str.charAt(2)) { result++; } result += countPairs(str.substring(1, str.length())); return result; }

countAbc

public int countAbc(String str) { int result = 0; if(str.length() <= 2) { return 0; } if(str.substring(0, 3).equals("aba") || str.substring(0, 3).equals("abc")) { result++; } result += countAbc(str.substring(1, str.length())); return result; }

count11

public int count11(String str) { int result = 0; if(str.length() <= 1) { return 0; } if(str.substring(0, 2).equals("11") || str.substring(0, 2).equals("11")) { result++; str = str.substring(2, str.length()); } else { str = str.substring(1, str.length()); } result += count11(str); return result; }

stringClean

public String stringClean(String str) { if(str.length() <= 1) { return str; } String result = "", c = Character.toString(str.charAt(0)), n = ""; do { if(n.equals(c)) { str = str.substring(1, str.length()); if(str.length() <= 1) { break; } } n = Character.toString(str.charAt(1)); } while(n.equals(c) && str.length() > 1); if(str.length() < 1) { } else { str = str.substring(1, str.length()); } result += c; result += stringClean(str); return result; }

countHi2

public int countHi2(String str) { int result = 0; if(str.length() < 2) { return 0; } else if(str.length() == 2) { if(str.equals("hi")) { return 1; } else { return 0; } } else { if(str.charAt(0) == 'x') { if(str.length() <= 3) { return 0; } else if(str.substring(1, 3).equals("hi")) { str = str.substring(3, str.length()); } else { str = str.substring(1, str.length()); } } else { if(str.substring(0, 2).equals("hi")) { result++; str = str.substring(2, str.length()); } else { str = str.substring(1, str.length()); } } } result += countHi2(str); return result; }

parenBit

public String parenBit(String str) { String result = ""; if(str.charAt(0) == '(') { if(str.charAt(str.length() - 1) == ')') { return str; } else { return parenBit(str.substring(0, str.length() - 1)); } } else { return parenBit(str.substring(1, str.length())); } }

nestParen

public boolean nestParen(String str) { String result = ""; if(str.length() == 0) { return true; } if(str.length() < 1) { return false; } if(str.charAt(0) == '(') { if(str.charAt(str.length() - 1) == ')') { return nestParen(str.substring(1, str.length() - 1)); } return false; } else { return false; } }

strCount

public int strCount(String str, String sub) { int result = 0; if(str.length() < sub.length()) { return 0; } else if(str.length() == sub.length() && str.equals(sub)) { return 1; } else if(str.substring(0, sub.length()).equals(sub)) { result++; str = str.substring(sub.length(), str.length()); } else { str = str.substring(1, str.length()); } result += strCount(str, sub); return result; }

strCopies

public boolean strCopies(String str, String sub, int n) { if(strCount(str, sub) == n) { return true; } else { return false; } } public int strCount(String str, String sub) { int result = 0; if(str.length() < sub.length()) { return 0; } else if(str.length() == sub.length() && str.equals(sub)) { return 1; } else if(str.substring(0, sub.length()).equals(sub)) { result++; } str = str.substring(1, str.length()); result += strCount(str, sub); return result; }

strDist

public int strDist(String str, String sub) { if(str.length() == 1 && str.equals(sub)) { return 1; } else if(str.length() < sub.length() || str.length() <= 1) { return 0; } else { if(str.charAt(0) == sub.charAt(0) && str.charAt(0) == str.charAt(str.length() - sub.length()) && str.substring(str.length() - sub.length(), str.length()).equals(sub) && str.substring(str.length() - sub.length()).equals(sub)) { return str.length(); } else { if(str.substring(0, sub.length()).equals(sub)) { return strDist(str.substring(0, str.length() - 1), sub); } else if(str.substring(str.length() - sub.length(), str.length()).equals(sub)) { return strDist(str.substring(1, str.length()), sub); } return strDist(str.substring(1, str.length() - 1), sub); } } }

This section includes these questions: factorial, bunnyEars, fibonacci, bunnyEars2, triangle, sumDigits, count7, count8, powerN, countX, countHi, changeXY, changePi, noX, array6, array11, array220, allStar, pairStar, endX countPairs, countAbc, count11, stringClean, countHi2, parenBit, nestParen, strCount, strCopies, strDist.

Share this:

  • X
  • Facebook
Like Loading...

Tag » Codingbat Nox Solution