[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/biblelamp/JavaExercises/master/Algorithms/recursion/triangle.java [Back]  [Original]

/**
 * Book: Data Structures and Algorithms in Java, by Robert LaFore
 * Chapter 6:
 *  triangle.java
 *  evaluates triangular numbers
 *  to compile this code: javac triangle.java
 *  to run this program:  java TriangleApp
 */
import java.io.*;

class TriangleApp {
    static int theNumber;

    public static void main(String[] args) throws IOException {
        System.out.print("Enter a number: ");
        theNumber = getInt();
        int theAnswer = triangle(theNumber);
        // we can check result using formula:
        //  result = (n^2 + n)/2
        System.out.println("Triangle = " + theAnswer);
    }

    public static int triangle(int n) {
        System.out.println("Entering: n = " + n);
        if (n==1) {
            System.out.println("Returning 1");
            return 1;
        } else {
            int temp = n + triangle(n-1);
            System.out.println("Returning " + temp);
            return temp;
        }
    }

    public static String getString() throws IOException {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        String s = br.readLine();
        return s;
    }

    public static int getInt() throws IOException {
        String s = getString();
        return Integer.parseInt(s);
    }
}

Web Proxy Viewer  |  New URL  |  Original Page