import java.util.Scanner; public class Sum_Recursive_debug { private static final boolean debug=true; private static final int MAX=5; public static int calculateSum(int num) { if(debug) { for(int j=MAX-num; j>0; j--) System.out.print("\t"); System.out.println("[num=" + num + "]: called"); } int result, recursive_result; if(num==1) { recursive_result=0; result=1; } else { recursive_result = calculateSum(num-1); result = num + recursive_result; } if(debug) { for(int j=MAX-num; j>0; j--) System.out.print("\t"); System.out.println("[num=" + num + "]: returning " + result + " = " + num +" + " + recursive_result); } return result; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Enter a number: "); int n= scan.nextInt(); int res = calculateSum(n); System.out.println("\nSum of the numbers from 1 to " + n + " = " + res); } }