第三次小考 #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; } aaa(ib,0,9) 傳入參數 a1=0,a2=9 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+9)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=4 if(a1==a2)return ib[a1]; a1=0,a2=9 沒有return 傳入aaa(ib,0,4) 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; } aaa(ib,0,9) aaa(ib,0,4) 傳入參數 a1=0,a2=4 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+4)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=2 if(a1==a2)return ib[a1]; a1=0,a2=4沒有return 傳入aaa(ib,0,2) 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; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) 傳入參數 a1=0,a2=2 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+2)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=1 if(a1==a2)return ib[a1]; a1=0,a2=2沒有return 傳入aaa(ib,0,1) 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; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) aaa(ib,0,1) 傳入參數 a1=0,a2=1 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+1)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=0 if(a1==a2)return ib[a1]; a1=0,a2=1沒有return 傳入aaa(ib,0,0) 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; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) aaa(ib,0,1) aaa(ib,0,0) 傳入參數 a1=0,a2=0 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+2)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=1 if(a1==a2)return ib[a1]; a1=0,a2=0return ib[0] 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; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) aaa(ib,0,1) aaa(ib,0,0) u=aaa(ib,0,0)=0 return ib[0] (ib[0]=0) 傳入參數 a1=0,a2=1 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+1)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=0 if(a1==a2)return ib[a1]; a1=0,a2=1沒有return aaa(ib,0,0) return ib[0] u=aaa(ib,a1,m); 所以 u=ib[0] (u=0) cout<<"u="<<u<<"\n"; u=0 v=aaa(ib,m+1,a2); 傳入aaa(ib,1,1) cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; } 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) 傳入參數 a1=1,a2=1 int aaa(int *ib,int a1,int a2) { int u,v; m=(1+1)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=1 if(a1==a2)return ib[a1]; a1=a2=1return ib[1] 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; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) aaa(ib,0,1) aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] (ib[0]=0) return ib[1] (ib[1]=2) v=aaa(ib,1,1)=2 傳入參數 a1=0,a2=1 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+1)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=0 if(a1==a2)return ib[a1]; a1=0,a2=1沒有return 傳入aaa(ib,0,0) u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; u=0 v=aaa(ib,m+1,a2); v = aaa(ib,1,1) cout<<"v="<<v<<"\n"; v=2 if(u>v)return u;else return v; u=0 ,v = 2 v>u return v (v=2) } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) v>u return v (v=2) aaa(ib,0,1) u=2 aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] (ib[0]=0) return ib[1] (ib[1]=2) 傳入參數 a1=0,a2=2 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+2)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=1 if(a1==a2)return ib[a1]; a1=0,a2=2沒有return u=aaa(ib,0,1)=2 u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; u=2 v=aaa(ib,m+1,a2); 傳入aaa(ib,2,2) cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) aaa(ib,0,1) u=2 aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] (ib[0]=0) return ib[1] (ib[1]=2) aaa(ib,2,2) 傳入參數 a1=2,a2=2 int aaa(int *ib,int a1,int a2) { int u,v; m=(2+2)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=2 if(a1==a2)return ib[a1]; a1=a2=2return ib[2] (ib[2]=3) 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; } aaa(ib,0,9) aaa(ib,0,4) aaa(ib,0,2) aaa(ib,0,1) u=2 aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] (ib[0]=0) return ib[1] (ib[1]=2) aaa(ib,2,2) v=3 return ib[2] (ib[2]=3) v=aaa(ib,2,2)=3 傳入參數 a1=0,a2=2 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+2)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=1 if(a1==a2)return ib[a1]; a1=0,a2=2沒有return u=aaa(ib,0,1)=2 u=aaa(ib,a1,m); cout<<"u="<<u<<"\n"; u=2 v=aaa(ib,m+1,a2); 傳入aaa(ib,2,2) cout<<"v="<<v<<"\n"; v=3 if(u>v)return u;else return v; u=2 ,v = 3 v>u return v (v=3) } aaa(ib,0,9) aaa(ib,0,4) v>u return v (v=3) aaa(ib,0,2) u=3 aaa(ib,0,1) u=2 aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] (ib[0]=0) return ib[1] (ib[1]=2) aaa(ib,2,2) v=3 return ib[2] (ib[2]=3) 傳入參數 a1=0,a2=4 int aaa(int *ib,int a1,int a2) { int u,v; m=(0+4)/2 …… 因為m屬於int,所以m等於整數部份 int m=(a1+a2)/2; m=2 if(a1==a2)return ib[a1]; a1=0,a2=4沒有return 傳入aaa(ib,0,2) u=aaa(ib,a1,m); aaa(ib,0,2) = 3 cout<<"u="<<u<<"\n"; u=3 v=aaa(ib,m+1,a2); 傳入 aaa(ib,3,4) cout<<"v="<<v<<"\n"; if(u>v)return u;else return v; } aaa(ib,0,9) aaa(ib,0,4) v>u return v (v=3) aaa(ib,0,2) u=3 aaa(ib,0,1) u=2 aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] (ib[0]=0) return ib[1] (ib[1]=2) aaa(ib,2,2) v=3 return ib[2] (ib[2]=3) aaa(ib,3,4) 加油~~!! 繼續做下去一定會是 以下結果 aaa(ib,0,9) 28 aaa(ib,0,4) u=8 aaa(ib,0,2) u=3 aaa(ib,0,1) u=2 aaa(ib,0,0) u=0 aaa(ib,1,1) v=2 return ib[0] return ib[1] aaa(ib.5,9) v=28 aaa(ib,3,4) v=8 aaa(ib,2,2) v=3 aaa(ib,3,3) u=6 aaa(ib,4,4) v=8 return ib[2] return ib[3] return ib[4] aaa(ib,0,9) 28 aaa(ib,0,4) u=8 aaa(ib.5,9) v=28 aaa{ib,8,9) v=16 aaa(ib,5,7) u=28 aaa(ib,5,6) u=12 aaa(ib,5,5) u=6 return ib[5] aaa(ib,6,6) v=12 return ib[6] aaa(ib,6,7) v=28 aaa(ib,6,6) u=12 aaa(ib,7,7) v=28 return ib[6] return ib[7] aaa(ib,8,8) u=16 Aaa(ib,9,9) v=11 return ib[8] return ib[9]
© Copyright 2025 Paperzz