How does the recursion here work?

后端 未结 9 1200
悲&欢浪女
悲&欢浪女 2021-01-04 12:18

Code 1:

public static int fibonacci (int n){ 
    if (n == 0 || n == 1) { 
        return 1; 
    } else { 
        return fibonacci (n-1) + fibonacci (n-2)         


        
9条回答
  •  情深已故
    2021-01-04 12:47

    "How can you use Fibonacci if you haven't gotten done explaining what it is yet?"

    This is an interesting way to question recursion. Here's part of an answer: While you're defining Fibonacci, it hasn't been defined yet, but it has been declared. The compiler knows that there is a thing called Fibonacci, and that it will be a function of type int -> int and that it will be defined whenever the program runs.

    In fact, this is how all identifiers in C programs work, not just recursive ones. The compiler determines what things have been declared, and then goes through the program pointing uses of those things to where the things actually are (gross oversimplification).

提交回复
热议问题