課程
/后端開發
/C
/C語言入門
為什么調用自身函數那里可以算階乘,它不是只有兩個數嗎?就是factorial(n-1)*n這里,求大佬講解
2021-12-11
源自:C語言入門 5-7
正在回答
就是你在最下面給n賦值為5,那么調用函數之后就變成了result=factorial(5-1)*5,函數在計算的時候發現了自己,函數就只能調用了自己,factorial(5-1)就重新從factorial這個函數的頭開始判斷和計算,因為4>0且4不等于0和1,所以factorial(4)又等于factorial(4-1)*4,然后此時result=factorial(4-1)*4*5,然后函數又發現了自己,再次調用自身,一直進行階乘,直到result=factorial(2-1)*2*3*4*5,這時factorial(2-1)=1,而1是個常數,也就相當于函數停止了對于自己的調用,此時result=1*2*3*4*5=120,就算出了階乘的值
潘晉松
weixin_慕函數0091506
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答調用自身函數
3 回答調用自身一定是函數(n-1)嗎
1 回答遞推能算多大數的階乘
2 回答那個階乘的計算
1 回答關于階乘算法的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2022-02-09
就是你在最下面給n賦值為5,那么調用函數之后就變成了result=factorial(5-1)*5,函數在計算的時候發現了自己,函數就只能調用了自己,factorial(5-1)就重新從factorial這個函數的頭開始判斷和計算,因為4>0且4不等于0和1,所以factorial(4)又等于factorial(4-1)*4,然后此時result=factorial(4-1)*4*5,然后函數又發現了自己,再次調用自身,一直進行階乘,直到result=factorial(2-1)*2*3*4*5,這時factorial(2-1)=1,而1是個常數,也就相當于函數停止了對于自己的調用,此時result=1*2*3*4*5=120,就算出了階乘的值