包含java10000阶乘的词条

博主:adminadmin 2022-11-22 06:35:08 51

今天给各位分享java10000阶乘的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java怎么写求阶乘?

亲测可用

long jiecheng(int x)

{

long int i,k=1;

for(i=1;i=x;i++)

k=k*i;

return k;

}

int main()

{

long int j,k=0;

int i;

for(i=1;i=20;i++)

{

j=jiecheng(i);

k+=j;

}

printf("%ld\n",k);

}

输出的结果是2561327494111820313

扩展资料:

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

计算方法:

大于等于1:

任何大于等于1 的自然数n 阶乘表示方法:n! = 1×2×3×...×(n-1)n或n! = n×(n-1)!

0的阶乘:0!=1。

参考资料:百度百科——阶乘

谁能给我个10000的阶乘程序(java写的)

#include stdio.h

#include conio.h

long result[10000]; //声明一个足够长的数组

main()

{

void jiech(int input); //求阶乘的函数

int a,i;

printf("intput n:");

scanf("%d",a);//输入要求的数

for(i=0;i10000;i++) //给数组附初值

result[i] = 0;

result[9999] = 1; //给最底位 1;

jiech(a);//开始求阶乘

for(i=0;i10000result[i]==0;i++); //前面的数组是0的跃过

int j = i; //此时的j,i是最高位。也就是数组里第一个高位!=0的数

for(;i10000;i++) //开始输出结果

{

//如果有数组元素是一个0的,输出000;

if(result[i]==0) { printf("0000"); continue; }

if(result[i]/1000==0 result[i]/100!=0result[i]/10!=0i!=j)

{ printf("0%ld",result[i]); continue; } //如果数组元素10010 的输出时在前面加一个0

if(result[i]/100==0 result[i]/10!=0i!=j)

{ printf("00%ld",result[i]); continue; } // 如果数组元素100 的输出时在前面加 00;

if(result[i]/10==0 i!=j)

{printf("000%ld",result[i]); continue;}

printf("%ld",result[i]);

}

printf("\n");

getch();

}

void jiech(int input)

{

int i,j;

//如果输入1,不用算。因为初值里就是1。当然还有一些情况不用算,在这里就没有判断了。

if(input == 1) return;

do{

for(i=0;i10000result[i]==0;i++); //跟上面一样,前面的数组是0的跃过

//开始运算,用输入的数跟数组的每一元素相乘

for(;i10000;i++)

result[i] *= input;

for(i=0;i10000result[i]==0;i++); //跟上面一样,前面的数组是0的跃过

for(j=9999;j=i;j--) //开始整理结果,让每个元素进位,并且存三位

{

if(j2)

//如果超过数组的长度,输出You are crazy!,等待接收字符。

{ printf("You are crazy!\n"); getch(); getch(); return;}

//把六位以后的位进到后面第二个元素里,并且本元素丢掉这些位。

result[j-2] += result[j]/100000000; result[j] = result[j]%100000000;

//把三位以后的位进到后面第一个元素里,并且本元素丢掉这些位。

result[j-1] += result[j]/10000; result[j] = result[j]%10000;

}

input--; //输入的数递减

} while(input1); //如果数减到1,退出。

}

包含java10000阶乘的词条

java 的阶乘问题

public static void main(String[] args){

pintResult();

}

public static void pintResult()

{

System.out.println("请输入要求阶乘的数: ");

Scanner str = new Scanner(System.in);

long a = str.nextLong();

long b =factorial(a);

System.out.println(a+"! = " + b);

pintResult();

}

public static long factorial(long n){

if((n == 1) || (n==0)){

return 1;

}else{

return n * factorial(n - 1 );

}

}

java计算10000阶乘

给你一个C++的大整数乘法的例子,你自己看下思路。

#include iostream

#include stdio.h

using namespace std;

int ZH_Mul(char a[],char b[])

{

  int n,i,j,g,t=0,k=1,temp,q,m,flag1=0,flag2=0,flag=1,swap;

  char s[202];

 n=strlen(a);

 m=strlen(b);

 if(a[0]=='-')

 {

    for(int i=1;i=n-1;i++)

     a[i-1]=a[i];

    flag1++;

    n--;

 }

  if(a[0]=='+')

 {

    for(int i=1;i=n-1;i++)

     a[i-1]=a[i];

    //flag1++;

    n--;

 }

 if(b[0]=='-')

 {

    for(int i=1;i=m-1;i++)

     b[i-1]=b[i];

    flag2++;

    m--;

 }

   if(b[0]=='+')

 {

    for(int i=1;i=m-1;i++)

     b[i-1]=b[i];

    //flag1++;

    n--;

 }

 for(int i=0;in;i++)

 {

 if('9'a[i]||a[i]'0')

   { cout"输入的长整数中包含除0~9和负号(-)外的其他字符,请重新输入!!!!"endl;

     return 0; }

  }

  for(int i=0;im;i++)

 if('9'b[i]||b[i]'0')

   { cout"输入的长整数中包含除0~9和负号(-)外的其他字符,请重新输入!!!!"endl;

     return 0; }

 // if(flag1==1){}

 n--;m--;

 q=n+m;

 while(k=q)

 {

  s[k]=0;

  temp=0;

  for(i=0;i=n;i++)

  {

   for(j=0;j=m;j++)

   {

     if((i+j)==k-1)

      temp+=(a[n-i]-48)*(b[m-j]-48);

   }

  }

  g=(temp+t)%10;

  t=(temp+t)/10;

  s[k]=g;

  k++;

 }

 temp=0;

 for(i=0;i=n;i++)

 {

  for(j=0;j=m;j++)

   if((i+j)==k-1)

    temp+=(a[n-i]-48)*(b[m-j]-48);

 }

 temp+=t;

 cout"两个大整数的乘积为:";

 if((flag1+flag2)%2==1)

 {

   cout"-";

 }

 if(temp!=0)

 printf("%d",temp);

 else{flag=0;}

 

 for(i=q;i0;i--)

 {

    if(flag!=0)

    {

        printf("%d",s[i]);

        flag=1;

    }

    else if(s[i]!=0)

    {

        printf("%d",s[i]);

        flag=1;

    }

 }

 printf("\n");

 return 0;

}

void main()

{

 freopen("input.txt","r",stdin);

 freopen("output.txt","w",stdout);

 char a[100],b[100],s[202];

 //cout"请输入两个长整数"endl ;

 //cout"第一个大整数为:";

 scanf("%s",a);

 //cout"第二个大整数为:";

 scanf("%s",b);

 ZH_Mul(a,b);

}

10000的阶乘等于多少?

10000的阶乘是一个35660位的正整数。

所以,只能用科学记数法来表示:

10000! = 2.84625968091705451890641321211986889*10^35659

可以通过华为手机计算器计算出上述答案,下面是截图

当然,普通计算机来解决这样的问题也是轻而易举的事情。只是需要通过编程来实现。

一般地,我们可以先计算出1到10000的对数和,在求取10000!的数值。

以下是fortran代码和计算结果:

关于java10000阶乘和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。