35 階層值 m!(m>=0)的遞迴演算法的虛擬碼如下,下列何者錯誤?
【用戶】exam0526
【年級】國二上
【評論內容】遞迴就是自己呼叫自己以3!為例,3!=3*2*1 = 61. F(3)=3*F(3-1) =3*F(2)2. F(2)=2*F(2-1) =2*F(1)3. F(1)=1*F(1-1) =1*F(0)4. F(0)=1將得到得F(0)往回帶入3. F(1)=1*F(1-1) =1*F(0) =1*1=12. F(2)=2*F(2-1) =2*F(1) =2*1=21. F(3)=3*F(3-1) =3*F(2) =3*2=6
【用戶】exam0526
【年級】國二上
【評論內容】遞迴就是自己呼叫自己以3!為例,3!=3*2*1 = 61. F(3)=3*F(3-1) =3*F(2)2. F(2)=2*F(2-1) =2*F(1)3. F(1)=1*F(1-1) =1*F(0)4. F(0)=1將得到得F(0)往回帶入3. F(1)=1*F(1-1) =1*F(0) =1*1=12. F(2)=2*F(2-1) =2*F(1) =2*1=21. F(3)=3*F(3-1) =3*F(2) =3*2=6
【用戶】嘎嘎
【年級】小三下
【評論內容】階乘定義 m!=1*2*3....*(m-2)*(m-1)*m也能夠看做m*(m-1)!,其中0! =1。由上方定義可得知程式碼 if (m=0) return X , X應為1else return Y*F(Z) ,Y應為m而程式碼中的F(Z)則表示再跑Z次這個程式片段,直到最後的F(Z-Z)等於0, return1整個計算流程展開後如下:m*F(Z) =m*Z*F(Z-1)=m*Z*(Z-1)*F(Z-2)...=m*Z*(Z-1)*F(Z-2).....F(Z-Z)故由上方定義得知Z=(m-1)