电脑求积数怎么做的!

电脑求积数怎么做的!,第1张

点开始—程序—附件—计算器。打开计算器,就可以用了。*号代表乘

excel算乘法

如果是两个数字相乘,最简单的方法是将这两个数字放在A1和B1,在其它单元格输入

=A1*B1

如果是很多数据相乘,比如放在以A1为左上角,D4为右下角的区域内共16个数据,可以直接输入

=PRODUCT(A1:D4)

由于阶乘运算的增长速度特别快(比2^n的增长速度快),对于较小整数的阶乘运算采用简单的递规算法可以实现,但是对于大整数的乘法(比如1000!),则传统的递规算法就失去了作用。

由于本人的水平不高,用下列拙劣的方式实现,请高人多多指教。具体如下:定义一个很长的数组,用数组的每一项表示计算结果的每一位。例如,7!=5040,a[1000],则a[0]=0,a[1]=4,a[2]=0,a[3]=5。

程序源代码:

/**

*计算大数的阶乘,算法的主要思想就是将计算结果的每一位用数组的一位来表示:如要计算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=2i<a.lengthi++)

a[i] = 0//将数组元素初始化

a[0] = 1//用数组的一项存放计算结果的位数

a[1] = 1//将第一项赋值为一

for(int j= 2j <= nj++)

{

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 != 0i++)

{

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>0i--)

{

count++

System.out.print(/*"a[" + i + "]=" + */a[i]/* + " "*/)

}

System.out.println("\n"+count)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11960291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存