import java.util.Scanner; import java.util.StringTokenizer; /** Formula3.java -- Let's illustrate recursive formulas for exponentiation * and Pascal's triangle. */ public class Formula3 { public static void main(String [] args) { System.out.print("Enter two positive integers: "); Scanner kbd = new Scanner(System.in); String line = kbd.nextLine(); StringTokenizer tok = new StringTokenizer(line, ", "); int a = Integer.parseInt(tok.nextToken()); int b = Integer.parseInt(tok.nextToken()); int expValue = exp(a, b); System.out.printf("%d to the %d is %d\n", a, b, expValue); int pascalValue = pascal(a, b); System.out.printf("Number on row %d col %d of Pascal's triangle = %d\n", a, b, pascalValue); } public static int exp(int a, int b) { if (b == 0) { return 1; } else if (b % 2 == 0) { int returnValue = exp(a, b/2); return returnValue * returnValue; } else { int returnValue = exp(a, b-1); return a * returnValue; } } public static int pascal(int a, int b) { if (a == b || b == 0) { return 1; } else if (b > a) { return 0; } else { return pascal(a-1, b-1) + pascal(a-1,b); } } }