C語言計算大數(shù)階乘的方法
更新時間:2021年05月09日 07:08:20 作者:l455702707
這篇文章主要為大家詳細介紹了C語言計算大數(shù)階乘的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言計算大數(shù)階乘的具體代碼,供大家參考,具體內容如下
問題描述
輸入一個正整數(shù)n,輸出n!的值。
其中n!=1*2*3*…*n。
算法描述
n!可能很大,而計算機能表示的整數(shù)范圍有限,需要使用高精度計算的方法。使用一個數(shù)組A來表示一個大整數(shù)a,A[0]表示a的個位,A[1]表示a的十位,依次類推。
將a乘以一個整數(shù)k變?yōu)閷?shù)組A的每一個元素都乘以k,請注意處理相應的進位。
輸入格式
輸入包含一個正整數(shù)n,n<=1000。
輸出格式
輸出n!的準確值。
樣例輸入
10
樣例輸出
3628800
#include <stdio.h> #define N 10000 int main() { int a[N]={1}; int k=0,l=1,n; int i,j; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=0;j<l;j++) { a[j]=a[j]*i+k; k=a[j]/10000; a[j]=a[j]%10000; } if(k) { a[j]=k; l++; k=0; } } printf("%d",a[l-1]); for(i=l-2;i>=0;i--) printf("%04d",a[i]); printf("\n"); return 0; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
詳解C++值多態(tài)中的傳統(tǒng)多態(tài)與類型擦除
值多態(tài)是一種介于傳統(tǒng)多態(tài)與類型擦除之間的多態(tài)實現(xiàn)方式,借鑒了值語義,保留了繼承,在單繼承的適用范圍內,程序和程序員都能從中受益。這篇文章主要介紹了C++值多態(tài)中的傳統(tǒng)多態(tài)與類型擦除,需要的朋友可以參考下2020-04-04