首頁>技術>

求階乘函式:

int factorial(int number)//自定義階乘函式 {  int temp;//定義整型變數   if(number<0)//如果這個數小於0   {    printf("錯誤資料請,輸入大於0的數!");//不符合條件,無法求   }  else if(number==0||number==1)//0或者1本身的階乘是1   {    temp=1;  }  else  {    temp=factorial(number-1)*number;//否則求這個數與前一個數相乘的結果   }   return temp;//將temp返回到函式呼叫處 }

原始碼演示:

#include<stdio.h>//標頭檔案 int main()//主函式 {  int factorial(int number);//自定義階乘函式宣告   int number,temp;//定義變數   printf("輸入要求階乘的數:");//提示語句   scanf("%d",&number);//鍵盤輸入相求的數   temp=factorial(number);//呼叫階乘函式   printf("%d!=%d",number,temp) ;//輸出結果   return 0;//主函式返回值為0 } int factorial(int number)//自定義階乘函式 {  int temp;//定義整型變數   if(number<0)//如果這個數小於0   {    printf("錯誤資料請,輸入大於0的數!");//不符合條件,無法求   }  else if(number==0||number==1)//0或者1本身的階乘是1   {    temp=1;  }  else  {    temp=factorial(number-1)*number;//否則求這個數與前一個數相乘的結果   }   return temp;//將temp返回到函式呼叫處 }

編譯執行結果如下:

輸入要求階乘的數:55!=120--------------------------------Process exited after 1.553 seconds with return value 0請按任意鍵繼續. . .

上述程式碼我定義的是int型別,因為這個數不可能無限大,如果特別大,會超過int的範圍,如下:

輸入要求階乘的數:100100!=0--------------------------------Process exited after 1.575 seconds with return value 0請按任意鍵繼續. . .

留個問題給讀者請思考,最大可以求幾的階乘,為什麼?

20
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • C語言 | 函式實現輸出I love you