public class MultiplyDigits4 { public static void main(String args[]){ int max_num = 0; int max_num_multiplies = 0; //-ADDED-------------------- int num_maxes = 1; //-------------------------- for(int i = 10; i<100; i++){ int t; t = num_multiply_digits_recurse(i, false); //-ADDED------------------------------- if(t == max_num_multiplies) num_maxes++; //------------------------------------- if(t > max_num_multiplies){ max_num = i; max_num_multiplies = t; //-ADDED------------------------------- num_maxes = 1; //------------------------------------- } System.out.println("no. of multiplications required for " +i+" is "+t); } System.out.println(max_num+" has the higest number of multiplies(" +max_num_multiplies+")."); //-ADDED--------------------- System.out.println("There are "+num_maxes+" such numbers."); //--------------------------- } 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; } } }