C語言計(jì)算大數(shù)階乘的方法
本文實(shí)例為大家分享了C語言計(jì)算大數(shù)階乘的具體代碼,供大家參考,具體內(nèi)容如下
問題描述
輸入一個(gè)正整數(shù)n,輸出n!的值。
其中n!=1*2*3*…*n。
算法描述
n!可能很大,而計(jì)算機(jī)能表示的整數(shù)范圍有限,需要使用高精度計(jì)算的方法。使用一個(gè)數(shù)組A來表示一個(gè)大整數(shù)a,A[0]表示a的個(gè)位,A[1]表示a的十位,依次類推。
將a乘以一個(gè)整數(shù)k變?yōu)閷?shù)組A的每一個(gè)元素都乘以k,請(qǐng)注意處理相應(yīng)的進(jìn)位。
輸入格式
輸入包含一個(gè)正整數(shù)n,n<=1000。
輸出格式
輸出n!的準(zhǔ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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++計(jì)算任意兩個(gè)日期天數(shù)差的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)任意兩個(gè)日期天數(shù)差,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下2024-02-02
深入理解約瑟夫環(huán)的數(shù)學(xué)優(yōu)化方法
本篇文章是對(duì)約瑟夫環(huán)的數(shù)學(xué)優(yōu)化方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C++ DFS算法實(shí)現(xiàn)走迷宮自動(dòng)尋路
這篇文章主要為大家詳細(xì)介紹了C++ DFS算法實(shí)現(xiàn)走迷宮自動(dòng)尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
C++實(shí)現(xiàn)病人就醫(yī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++語言實(shí)現(xiàn)病人就醫(yī)管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
C語言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++控制權(quán)限關(guān)鍵字protected
這篇文章主要介紹了C++控制權(quán)限關(guān)鍵字protected,protected和private類似,而對(duì)于派生類來說,protected與public類似,下面來一起倆姐更多詳細(xì)內(nèi)容吧,需要的小伙伴可以參考一下2022-01-01
Mingw64編譯wxWidgets 3.0.2常見錯(cuò)誤分析
這篇文章主要介紹了Mingw64編譯wxWidgets 3.0.2常見錯(cuò)誤分析,需要的朋友可以參考下2016-11-11
構(gòu)造函數(shù)定義為private或者protected的好處
從語法上來講,一個(gè)函數(shù)被聲明為protected或者private,那么這個(gè)函數(shù)就不能從“外部”直接被調(diào)用了。對(duì)于protected的函數(shù),子類的“內(nèi)部”的其他函數(shù)可以調(diào)用之。而對(duì)于private的函數(shù),只能被本類“內(nèi)部”的其他函數(shù)說調(diào)用2013-10-10

