Download ppt - Recursive Factorial Demo

Transcript
Page 1: Recursive Factorial Demo

Introduction to Computer Science • Robert Sedgewick and Kevin Wayne • http://www.cs.Princeton.EDU/IntroCS

Recursive Factorial Demo

pubic class Factorial { public static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

public static void main(String[] args) { System.out.println(fact(3)); }}

Page 2: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

Page 3: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

Page 4: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

Page 5: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

Page 6: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

Page 7: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

Page 8: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

Page 9: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

Page 10: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

Page 11: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(0)n = 0

environment

Page 12: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(0)n = 0

environment

Page 13: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(0)n = 0

environment

1

Page 14: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

11

Page 15: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(1)n = 1

environment

11

1

Page 16: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

12

Page 17: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(2)n = 2

environment

12

2

Page 18: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

23

Page 19: Recursive Factorial Demo

static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

fact(3)n = 3

environment

23

% java Factorial6

public class Factorial { public static int fact(int n) { if (n == 0) return 1; else return n * fact(n-1); }

public static void main(String[] args) { System.out.println(fact(3)); }}

6


Recommended