重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includeiostream
成都创新互联公司企业建站,10余年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站制作、成都网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
#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); //输出最终结果
15的阶乘等于1307674368000。阶乘是基斯顿·卡曼于1808年发明的运算符号。阶乘,也是数学里的一种术语,阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。例如所要求的数是4,则阶乘式是1乘以2乘以3乘以4,得到的积是24,24就是4的阶乘。例如所要求的数是6,则阶乘式是1乘以2乘以3乘以4乘以4乘以6,得到的积是720,720就是6的阶乘。