100×99×98×97×96×……×2×1的简便运算

求各位了,急用啦!!!!!!!!!小女子在此感谢各位英雄侠女了!!!!... 求各位了,急用啦!!!!!!!!!小女子在此感谢各位英雄侠女了!!!! 展开
及谨T
2009-10-11 · TA获得超过1203个赞
知道答主
回答量:29
采纳率:0%
帮助的人:58.7万
展开全部
魇鍅苮孒,你好:
你所谓的100×99×98×97×96×……×2×1,也就是100的阶乘,也可以简写作“100!”,如果你对数学有更深入点的接触的话,就会明白阶乘本身是没有简便运算可言的,只可以硬算,如果你想计算更大的数,我建议你上百度寻找计算阶乘的软件,听说多大的数都能计算出来。
如果你对计算机编程有所了解的话,我建议你可以自己编程计算这个问题,对于学过任何一门编程语言的人来说这都应该是一个非常简单的小程序罢了。
我可以跟你说这个阶乘的值为100!=9.332621544 e157 (就是9.332621544乘以10的157次幂)为近似数字,精确到小数点后9位。

下面给你两个解决途径:
1、在你电脑上的开始菜单中,进入附件,调出计算器,并在“查看”选项卡中选择“科学计算器”,你就可以计算阶乘了,方法是:输入数字100,再点击“n!”符号按钮。
2、如果懂得编程的话,下面给你一个程序源代码:
/**
*计算大数的阶乘,算法的主要思想就是将计算结果的每一位用数组的一位来表示:如要计算5!,那么首先将
*(1) a[0]=1,然后a[0]=a[0]*2,a[0]=2,
*(2) a[0]=a[0]*3,a[0]=6
*(3) a[0]=a[0]*4,a[0]=24,此时a[1]=2,a[0]=4
*/
public class Factorial
{
static int a[] = new int [10000];
static void factorial(int n)
{
for(int i=2; i< a.length; i++)
a[i] = 0; //将数组元素初始化
a[0] = 1; //用数组的一项存放计算结果的位数
a[1] = 1; //将第一项赋值为一
for(int j= 2; j <= n; j++)
{
int i=1;
int c = 0; //c表示向高位的进位
for(; i <= a[0]; i++)
{
a[i] = a[i] * j + c;//将来自低位的计算结果和本位的结果相加
c = a[i] / 10;
a[i] = a[i] % 10;
}
for(; c != 0; i++)
{
a[i] = c%10;
c = c / 10;
}
a[0] = i - 1;
}
}
public static void main(String[] args)
{
String num = args[0];

int count = 0;
int n = Integer.parseInt(num);
f(n);
for(int i= a[0]; i>0; i--)
{

count++;
System.out.print(/*"a[" + i + "]=" + */a[i]/* + " "*/);
}
System.out.println("\n"+count);
}
}

参考资料:http://blog.csdn.net/hengshan/archive/2005/11/13/528778.aspx

祝你能够早日解决这个问题!如果我的回答对你有帮助,请采纳,谢谢!
匿名用户
2009-10-20
展开全部
9.365746....154次幂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式