問題詳情

35 階層值 m!(m>=0)的遞迴演算法的虛擬碼如下,下列何者錯誤?


(A) Z = (m-1)
(B)Z=m
(C)Y=m
(D)X=1

參考答案

答案:B
難度:適中0.478
書單:沒有書單,新增

用户評論

【用戶】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)