分析方法調用
請分析如下的遞歸方法調用:
int f(int[]
a, int n)
{
if(n==0) return a[0];
return f(a, n-1) + a[n];
}
1. 它實現了什麼功能?
2.int[] a = {1,2,3,4};
int k = f(a,3);
當 n = 0 時,試畫出棧中局部變量的情況。
-------------------------------------------------------------------------------------------------------------------
1. 該方法實現了對數組的前邊n+1個元素求和。
2. 當n=0時,棧中局部變量的情況:
int n = 0
int[] a = 數組地址
int n = 1
int[] a = 數組地址
int n = 2
int[] a = 數組地址
int n = 3
int[] a = 數組地址
int k
int[] a = 數組地址 (這個是主調程序的局部變量,前邊的a是形參變量)
.....
棧底