#includeiostream
成都創(chuàng)新互聯(lián)公司企業(yè)建站,10余年網(wǎng)站建設經(jīng)驗,專注于網(wǎng)站建設技術(shù),精于網(wǎng)頁設計,有多年建站和網(wǎng)站代運營經(jīng)驗,設計師為客戶打造網(wǎng)絡企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務。對于成都網(wǎng)站制作、成都網(wǎng)站建設中不同領域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。
#includevector
#includestring
#includealgorithm
using namespace std;
string add(const string a,const string b);
string multiply(const string a,char b);
string multi(const string a,const string b);
string factorial(int n);
int main()
{
coutfactorial(15);
return 0;
}
string add(const string a,const string b)
{
string sh,lo,r; int g=0;
if(a.size()b.size())
{
sh=string(a.size()-b.size(),'0');
sh+=b; lo=a;
}
else
{
sh=string(b.size()-a.size(),'0');
sh+=a; lo=b;
}
r.resize(sh.size());
for(int i=sh.size()-1;i=0;--i)
{
r[i]=sh[i]+lo[i]-48+g;
if(r[i]'9')
{
r[i]-=10;
g=1;
}
else
{
g=0;
}
}
if(g==1)
r="1"+r;
return r;
}
string multiply(const string a,char b)
{
string r;
r.resize(a.size()); int g=0;
if(b=='0')
return "0";
if(b=='1') //加快計算
return a;
for(int i=a.size()-1;i=0;--i)
{
r[i]=(a[i]-48)*(b-48)%10+48+g;
if(r[i]'9')
{
r[i]-=10;
g=((a[i]-48)*(b-48))/10+1;
continue;
}
g=((a[i]-48)*(b-48))/10;
}
if(g!=0)
r.insert(0,string(1,g+48));
return r;
}
string multi(const string a,const string b)
{
string r("0");
string *c=new string[b.size()];
for(int i=0;ib.size();++i)
{
c[i]=multiply(a,b[b.size()-1-i])+string(i,'0');
r=add(r,c[i]);
}
delete[] c;
return r;
}
string factorial(int n)
{
char b[7];
string r="1";
for(int i=1;in+1;++i)
{
itoa(i,b,10);
r=multi(r,b);
}
return r;
}
long類型
long fac = 1L;
for(int i = 1; i =15; i++){
long = long * i;
}
System.out.pritnln(fac); //輸出最終結(jié)果
15的階乘等于1307674368000。階乘是基斯頓·卡曼于1808年發(fā)明的運算符號。階乘,也是數(shù)學里的一種術(shù)語,階乘指從1乘以2乘以3乘以4一直乘到所要求的數(shù)。例如所要求的數(shù)是4,則階乘式是1乘以2乘以3乘以4,得到的積是24,24就是4的階乘。例如所要求的數(shù)是6,則階乘式是1乘以2乘以3乘以4乘以4乘以6,得到的積是720,720就是6的階乘。