最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

求解問題呀

為什么result=factorial(n-1)*n ?就代表階乘呢?

是不是factorial就代表階乘函數(shù)

factorial(n-1)*n 相當于!(n-1)*n


正在回答

2 回答

這樣說吧,就拿例題為例,求5!,在自定義函數(shù)中他有一次調用自己,那么就要從函數(shù)頭開始運行。首先factorial(n-1)*n表示的就是4*5,接著調用自己factorial(n-1),那么factorial(n-1)*n就表示3*4*5,一次類推,2*3*4*5,1*2*3*4*5,0*1*2*3*4*5,-1*0*1*2*3*4*5。。。。。在自定義函數(shù)中我們知道當n<0時,return 0,那么n=0或1時,result=1,那么就不存在 0*1*2*3*4*5,-1*0*1*2*3*4*5。。。。。后面陸續(xù)的應該時1*1*2*3*4*5,1*1*1*2*3*4*5。。。。你想,這樣是不是就可以簡單的看成1*2*3*4*5,不就表示5的階乘么。望采納

1 回復 有任何疑惑可以回復我~
#1

慕絲6464244 提問者

非常感謝!
2018-06-21 回復 有任何疑惑可以回復我~
#2

慕萊塢2287185

可是if else又不是循環(huán)結構,為什么會反復調用啊,不應該在5*4的時候就return了么,為什么會繼續(xù)*3*2*1?。?/div>
2018-07-29 回復 有任何疑惑可以回復我~
#3

天然的純指揮 回復 慕萊塢2287185

之所以會循環(huán),是因為result=factorial(n-1)*n;中,結構是:把factorial(n-1)這個函數(shù)的值*n,得到的結果賦值給result,調用了函數(shù)factorial(n-1),而收到調用指令后,就會從頭開始執(zhí)行函數(shù)factorial(n-1),下一次會執(zhí)行調用函數(shù)factorial(n-2),以此類推,直到當n=1時,進入else if(n==0 || n==1)的執(zhí)行代碼塊結束跳出循環(huán),然后執(zhí)行return result;把值返回給自定義函數(shù)
2018-08-19 回復 有任何疑惑可以回復我~
#4

天然的純指揮 回復 慕萊塢2287185

關于如何跳出循環(huán)的問題解釋如下: else if(n==0 || n==1)語句中result=1;不是最后一步執(zhí)行,而是在階乘中最后被調用 result=factorial(n-1)*n;當?shù)竭@一步時,先調用函數(shù)factorial(n-1)的值,然后調用factorial(n-2)的值 一直到最后調用到result=1(這里的調用當然會使result變?yōu)?,但后面還有最后一步result的運算),將1這個值拿來進行運算,循環(huán)結構中最后執(zhí)行的一步是:result=factorial(n-1)*n;
2018-08-19 回復 有任何疑惑可以回復我~
#5

天然的純指揮 回復 慕萊塢2287185

假設n=5,那么最后執(zhí)行的一步就是result=1*2*3*4*5;執(zhí)行后跳出if,執(zhí)行return result;
2018-08-19 回復 有任何疑惑可以回復我~
#6

天然的純指揮 回復 慕萊塢2287185

不好意思,“直到當n=1時,進入else if(n==0 || n==1)的執(zhí)行代碼塊結束跳出循環(huán)”這句話錯了,正確解釋在上面回復啦
2018-08-19 回復 有任何疑惑可以回復我~
查看3條回復

請教一下

那程序 result 會不會返回值的時候,不會返回成1嗎?result之前的值不會被覆蓋?

0 回復 有任何疑惑可以回復我~
#1

天然的純指揮

個人看法:題目中的教學圖片else if(n==0 || n==1)的代碼塊給錯了,應該是return 1;表示結束,而不是result=1; 參考問答和評論里給的答案代碼,都是寫的return 1;來結束循環(huán)
2018-08-19 回復 有任何疑惑可以回復我~
#2

天然的純指揮

前一條評論可能錯誤了,你的問題具體原因我也不太清楚,抱歉打擾了
2018-08-19 回復 有任何疑惑可以回復我~
#3

天然的純指揮

仔細重新看了一遍,是這樣的: else if(n==0 || n==1)語句中result=1;不是最后一步執(zhí)行,而是在階乘中最后被調用 result=factorial(n-1)*n;當?shù)竭@一步時,先調用函數(shù)factorial(n-1)的值,然后調用factorial(n-2)的值 一直到最后調用到result=1(這里的調用當然會使result變?yōu)?,但后面還有最后一步result的運算),將1這個值拿來進行運算,循環(huán)結構中最后執(zhí)行的一步是:result=factorial(n-1)*n;
2018-08-19 回復 有任何疑惑可以回復我~
#4

天然的純指揮

假設n=5,那么最后執(zhí)行的一步就是result=1*2*3*4*5;執(zhí)行后跳出if,執(zhí)行return result;
2018-08-19 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消
C語言入門
  • 參與學習       927387    人
  • 解答問題       21538    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

求解問題呀

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號