// Solution for Recursion Lab // Author: Chris Wilcox // Date: Nov 3, 2016 // Class: CS163 // Email: wilcox@cs.colostate.edu import java.util.ArrayList; public class Recursion { // Array list of triangles public static ArrayList triangles = new ArrayList(); // Main program public static void main(String[] args) { // Verify computeFactorial System.out.println("Factorials:"); for (int number = 0; number <= 20; number++) { long factorial = computeFactorial(number); System.out.printf("Number: %2d, factorial = %d\n", number, factorial); } // Verify geometricSeries System.out.println("Geometric series: 1 + 1/2 + 1/4 + 1/8 + 1/16 + ..."); for (int terms = 1; terms <= 50; terms++) { double sum = geometricSeries(1, 1, terms); System.out.printf("Number of terms: %4d, series = %.10f\n", terms, sum); } // Create triangles System.out.println("Sierpinski Triangle, number of levels: " + Integer.parseInt(args[0])); Triangle base = new Triangle(200.0, 300.0, 0.0, 0.0, 394.0, 0.0); sierpinski(base, Integer.parseInt(args[0])); System.out.print("Triangles generated: " + triangles.size()); // Draw triangles UserInterface ui = new UserInterface(); ui.draw(triangles); } // Factorial using recursion: for example 6! = 6 * 5 * 4 * 3 * 2 * 1 = 720 public static long computeFactorial(long number) { // Base case // Recursive call // Return factorial return 0; } // Geometric series using recursion: 1 + 1/2 + 1/4 + 1/8 + 1/16 + ... public static double geometricSeries(int numerator, long denominator, int numberTerms) { // Base case // Calculate term // Recursive call // Return accumulation return 0.0; } // Sierpinski triangle using recursion public static void sierpinski(Triangle triangle, int numberLevels) { // Base case, processed all levels if (numberLevels == 0) return; // Compute triangle midpoints // double x0x1 = // double y0y1 = // double x1x2 = // double y1y2 = // double x0x2 = // double y0y2 = // Create and add inside triangle triangles.add(triangle); // Create outside triangles // Add outside triangles // Recursively subdivide outside triangles } }