Recursion Java


import java.util.*;

public class Recursion {
public static final int MIN = 0;
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
boolean start;

do {
int num1 = getInt(sc, "Enter a positive integer!");
int base = getInt(sc, "Enter a base conversion!");
System.out.println("Sum of digits for " + num1 + " is " + sumIterative(num1) + " (Iterative)" );

System.out.println("Sum of digits for " + num1 + " is " + sumRecursive(num1) + " (Recursive)");
System.out.println();

System.out.println(num1 + " in binary code is " + binaryIterative(num1) + " (Iterative)");
System.out.println();

System.out.println(num1 + " in binary code is " + binaryRecursive(num1) + " (Recursive)" );
System.out.println();

System.out.println(num1 + " in base " + base + " is " + displayNumberBaseIterative(num1, base) + " (Iterative)");

System.out.println(num1 + " in base " + base + " is " + displayNumberBaseRecursive(num1, base) + (" (Recursive)"));
System.out.println();

start = start(sc, "Would you like to continue? (Y/N)");
} while (start);

}
//find the sum of digits in any integer (iterative method)
public static int sumIterative(int n) {
int total = 0;
while (n > 0) {
total += (n % 10);
n /= 10;
}
return total;
}

//find the sum of digits in any integer (recursive method)
public static int sumRecursive(int n) {
if (n == 0) {
return 0;
} else {
return (n % 10) + sumRecursive(n / 10);
}
}

//display a number in binary (iterative method)
public static long binaryIterative(int n) {
long binary = 0;
long power = 1;
while (n > 0) {
binary += (n % 2) * power;
n /= 2;
power *= 10;
}
return binary;
}

//display a number in binary (recursive method)
public static long binaryRecursive(int n) {
if (n == 0) {
return 0;
} else {
return n % 2 + 10 * binaryRecursive(n / 2);
}
}

//string representation of a number in any base (iterative method)
public static String displayNumberBaseIterative(int n, int base) {
String result = "";
while (n > 0) {
result = (n % base) + result;
n = n / base;
}
return result;
}

//string representation of a number in any base (recursive method)
public static String displayNumberBaseRecursive (int n, int base) {
if (n == 0) {
return "";
} else {
return displayNumberBaseRecursive(n / base, base) + (n % base);
}
}

//get a positive integer from the user
public static int getInt(Scanner sc, String prompt) {
int num;
do {
System.out.println(prompt);
while (!sc.hasNextInt()) {
sc.next();
System.out.println("Invalid integer! Try again: ");
}
num = sc.nextInt();
sc.nextLine();
} while (num <= MIN); return num; } //get a Y/N response from the user public static boolean start(Scanner sc, String prompt) { System.out.println(prompt); String start = sc.nextLine(); if (start.equalsIgnoreCase("Y")) { return true; } else if (start.equalsIgnoreCase("N")){ return false; } else { System.out.println("Invalid input! Try again: "); return start(sc, prompt); } } }