OJ 系列之可怕的n的階乘

2021-07-09 11:33:33 字數 832 閱讀 6035

計算階乘n!是一件可怕的事情,因為當n並不是很大時,n!將是乙個很大的值。例如13! = 6227020800,已經超過了我們常用的unsigned int型別的取值範圍。請設計乙個程式,使其可以計算100以內的數的階乘,結果用字串的形式輸出

詳細描述:

介面說明

原型:

void calcnn(int n, char *pout)

輸入引數:

int n 需要計算的階乘數

輸出引數:

char *pout 結算結果,記憶體由呼叫者負責管理

仿照兩個大數相乘的具體過程,如98*99 ,具體乘法過程是用99先去乘以8,得到結果為792,進製79,因此個位為2,99乘以9得到891,891+79 = 970,進製97,因此最後結果9702.

void calcnn(int n, char *pout)

int i = 0,j=0,k=0;

int carry = 0; //記錄進製

int length = 1; //記錄陣列長度

int temp = 0; //臨時變數

int a[1000] = ; //臨時整型陣列

a[0] = 1;

/*3.階乘處理*/

for(i = 2; i <= n; ++i)

/*最後一位進製數可能大於10*/

while(carry)

}/*4.儲存字元陣列*/

for(i = length - 1; i >= 0; i--)

pout[k] = '\0';

return;

}

可怕的階乘

計算階乘n 是一件可怕的事情,因為當n並不是很大時,n 將是乙個很大的值。例如13 6227020800,已經超過了我們常用的unsigned int型別的取值範圍。請設計乙個程式,使其可以計算100以內的數的階乘,結果用字串的形式輸出 詳細描述 介面說明 原型 void calcnn int n,...

可怕的階乘

計算階乘n 是一件可怕的事情,因為當n並不是很大時,n 將是乙個很大的值。例如13 6227020800,已經超過了我們常用的unsigned int型別的取值範圍。請設計乙個程式,使其可以計算100以內的數的階乘,結果用字串的形式輸出 詳細描述 介面說明 原型 void calcnn int n,...

求教 可怕的階乘

計算階乘n 是一件可怕的事情,因為當n並不是很大時,n 將是乙個很大的值。例如13 6227020800,已經超過了我們常用的unsigned int型別的取值範圍。請設計乙個程式,使其可以計算100以內的數的階乘,結果用字串的形式輸出 詳細描述 介面說明 原型 void calcnn int n,...