Computational Advantages of Iteration and Recursion

Classic programmed-learning exercises, refreshed for modern Java and presented in the current MrStyner.com portfolio style.

Modern Java noteThis archive has been refreshed for Java 25 LTS. Core language concepts remain useful, while outdated setup instructions and browser-era Java are labeled or replaced. Java 26 is the current feature release; Java 25 is used here as the stable teaching baseline.

Answer:

From a static viewpoint, what is wrong?

The base case Triangle(1) = 1 was left out of the Java code.

From a dynamic viewpoint, what is wrong?

The method always calls for another activation regardless of the value of the parameter, so the chain of activation keeps growing until system resources run out.

Computational Advantages of Iteration and Recursion

Recursion is useful because sometimes a problem is naturally recursive. Then all you need to do is match it with Java code. But recursion does not add any fundamental power to Java.

Any method that is written using recursion can be written using iteration. Any method that is written using iteration can be written using recursion.

A computer programming language needs to include only one of iteration or recursion to be as powerful as any other programming language. Some languages (such as early FORTRAN) have only iteration. Other languages (such as early LISP) have only recursion. Most modern languages have both, because both are convenient.

QUESTION 18:

Is there an iterative version of Triangle?