iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

C語言精讀研習系列 第 11

條件式用遞迴來中止函式-下

  • 分享至 

  • xImage
  •  
result = n *fact(n-1);
  • 這行會不斷遞迴,直到指定n的階乘值算出來,
  • 才將result一層層地return回上層
  • 先算出1!, 2!, 3!, 同理才算出 n! * (n-1)! 的結果

程式碼

#include <stdio.h>

int fact(int n){	//宣告定義計算階乘的函式,只有 1 個引數
	int result = 1;
	
	if(n != 0){		//判斷項次不能為0 
		result = n * fact(n-1);	//遞迴呼叫自己,並且累乘 
	}
	return result;	//當 n=0傳回 1,否則傳回 n 的階乘值 
}

int main(void){
	int n;			//階乘的項次
	
	printf("請輸入 n 計算 n 的階乘值\n");
	scanf("%d", &n);
	
	printf("%d", fact(n));	//呼叫 fact() 遞迴函式
	
	return 0; 
}

參考資料:最新C程式語言


上一篇
條件式用遞迴來中止函式-上
下一篇
透過全域、區域變數來瞭解變數可使用的生存空間
系列文
C語言精讀研習47
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言