public class MultiplyDigits3 { public static void main(String args[]){ //-ADDED-------------------- int max_num = 0; int max_num_multiplies = 0; //-------------------------- for(int i = 10; i<100; i++){ //-ADDED and CHANGED------------------- int t; t = num_multiply_digits_recurse(i, false); if(t > max_num_multiplies){ max_num = i; max_num_multiplies = t; } //------------------------------------- //-CHANGED------------------------ System.out.println("no. of multiplications required for " +i+" is "+t); //-------------------------------- } //-ADDED--------------------- System.out.println(max_num+" has the higest number of multiplies(" +max_num_multiplies+")."); //--------------------------- } static int num_multiply_digits(int x, boolean toPrint){ int first_digit, second_digit; int num_multiplies = 0; if(toPrint) System.out.println(x); while(x > 9){ first_digit = x / 10; second_digit = x % 10; num_multiplies++; x = first_digit*second_digit; if(toPrint) System.out.println(x); } return num_multiplies; } static int num_multiply_digits_recurse(int x, boolean toPrint){ int first_digit, second_digit; first_digit = x / 10; second_digit = x % 10; if(toPrint) System.out.println(x); if(first_digit*second_digit > 9) return 1+num_multiply_digits_recurse(first_digit*second_digit, toPrint); else{ if(toPrint) System.out.println(first_digit*second_digit); return 1; } } }