#include<iostream> using namespace std;
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
int main() { int ia[10]={0,2,3,6,8,6,12,28,16,11}; cout<<aaa(ia,0,9)<<"\n"; return 0; }
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=9
m=(0+9)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 4
a1=0 , a2=9 沒有 return
傳入 aaa(ib,0,4)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=4
m=(0+4)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 2
a1=0 , a2=4 沒有 return
傳入 aaa(ib,0,2)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=2
m=(0+2)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 1
a1=0 , a2=2 沒有 return
傳入 aaa(ib,0,1)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=1
m=(0+1)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 0
a1=0 , a2=1 沒有 return
傳入 aaa(ib,0,0)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=0
m=(0+2)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 1
a1=0 , a2=0return ib[0]
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=1
m=(0+1)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 0
a1=0 , a2=1 沒有 return
aaa(ib,0,0) return ib[0]所以 u=ib[0] (u=0)
u=0
傳入 aaa(ib,1,1)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=1 , a2=1
m=(1+1)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 1
a1=a2=1return ib[1]
aaa(ib,0,9)
aaa(ib,0,4)
aaa(ib,0,2)
aaa(ib,0,1)
aaa(ib,0,0)u=0
return ib[0] (ib[0]=0)
aaa(ib,1,1)v=2
return ib[1] (ib[1]=2)
v=aaa(ib,1,1)=2
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=1
m=(0+1)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 0
a1=0 , a2=1 沒有 return
傳入 aaa(ib,0,0)
u = 0
v = aaa(ib,1,1)
v = 2
u=0 ,v = 2v>u return v (v=2)
v>ureturn v (v=2)
aaa(ib,0,9)
aaa(ib,0,4)
aaa(ib,0,2)
aaa(ib,0,1)u=2
aaa(ib,0,0)u=0
return ib[0] (ib[0]=0)
aaa(ib,1,1)v=2
return ib[1] (ib[1]=2)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=2
m=(0+2)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 1
a1=0 , a2=2 沒有 return
u=aaa(ib,0,1)=2
u=2
傳入 aaa(ib,2,2)
aaa(ib,0,9)
aaa(ib,0,4)
aaa(ib,0,2)
aaa(ib,0,1)u=2
aaa(ib,0,0)u=0
return ib[0] (ib[0]=0)
aaa(ib,1,1)v=2
return ib[1] (ib[1]=2)
aaa(ib,2,2)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=2 , a2=2
m=(2+2)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 2
a1=a2=2return ib[2] (ib[2]=3)
aaa(ib,0,9)
aaa(ib,0,4)
aaa(ib,0,2)
aaa(ib,0,1)u=2
aaa(ib,0,0)u=0
return ib[0] (ib[0]=0)
aaa(ib,1,1)v=2
return ib[1] (ib[1]=2)
aaa(ib,2,2)v=3
return ib[2] (ib[2]=3)
v=aaa(ib,2,2)=3
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=2
m=(0+2)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 1
a1=0 , a2=2 沒有 return
u=aaa(ib,0,1)=2
u=2
傳入 aaa(ib,2,2)
v=3
u=2 ,v = 3v>u return v (v=3)
aaa(ib,0,9)
aaa(ib,0,4)
aaa(ib,0,2)u=3
aaa(ib,0,1)u=2
aaa(ib,0,0)u=0
return ib[0] (ib[0]=0)
aaa(ib,1,1)v=2
return ib[1] (ib[1]=2)
aaa(ib,2,2)v=3
return ib[2] (ib[2]=3)
v>ureturn v (v=3)
int aaa(int *ib,int a1,int a2) { int u,v; int m=(a1+a2)/2; if(a1==a2)return ib[a1]; u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; v=aaa(ib,m+1,a2); cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; }
傳入參數 a1=0 , a2=4
m=(0+4)/2 ……因為 m 屬於 int ,所以 m 等於整數部份
m = 2
a1=0 , a2=4 沒有 return
傳入 aaa(ib,0,2)
aaa(ib,0,2) = 3u = 3
傳入 aaa(ib,3,4)
aaa(ib,0,9)
aaa(ib,0,4)
aaa(ib,0,2)u=3
aaa(ib,0,1)u=2
aaa(ib,0,0)u=0
return ib[0] (ib[0]=0)
aaa(ib,1,1)v=2
return ib[1] (ib[1]=2)
aaa(ib,2,2)v=3
return ib[2] (ib[2]=3)
v>ureturn v (v=3)
aaa(ib,3,4)
aaa(ib,0,9)28
aaa(ib,0,4)u=8
aaa(ib.5,9)v=28
aaa(ib,0,2)u=3
aaa(ib,3,4)v=8
aaa(ib,0,1)u=2
aaa(ib,2,2)v=3
aaa(ib,0,0)u=0
return ib[0]
aaa(ib,1,1)v=2
return ib[1]
return ib[2]
aaa(ib,3,3)u=6
aaa(ib,4,4)v=8
return ib[3] return ib[4]