包含java10000阶乘的词条
今天给各位分享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,退出。
}
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阶乘和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。