编写阶乘计算精确值的自定义函数
2010-05-11 13:06
429 查看
整体思路就是利用数组存放每一位数字,模拟乘法规则进行计算。
用以下代码看一下结果:
结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201005/11/1feac5702b8b541f21b6083e28b106c3.gif)
请参考下贴:
100的阶乘的结果的每位数之和等于多少? http://www.exceltip.net/thread-7618-1-1-11314.html
Function MyFact(DNumber) Dim ArrJG, ArrTemp Dim SumA As Double Dim i&, j& Dim strJG$ '结果输出 '计算阶乘长度 SumA = 1 For i = 1 To DNumber SumA = Log(i) / Log(10) + SumA Next i ReDim ArrJG(Int(SumA) - 1) ReDim ArrTemp(UBound(ArrJG)) '初始化结果数组 ArrJG(0) = 1 '计算阶乘结果 For i = 2 To DNumber For j = 0 To UBound(ArrJG) ArrTemp(j) = ArrJG(j) * i Next j j = 0 Do While j <= UBound(ArrJG) ArrJG(j) = ArrTemp(j) Mod 10 If ArrTemp(j) >= 10 Then ArrTemp(j + 1) = ArrTemp(j + 1) + ArrTemp(j) / 10 j = j + 1 Loop Next i '结果输出 For i = UBound(ArrJG) To 0 Step -1 strJG = strJG & ArrJG(i) Next i MyFact = strJG End Function
用以下代码看一下结果:
Sub Test() MsgBox MyFact(100) End Sub
结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201005/11/1feac5702b8b541f21b6083e28b106c3.gif)
请参考下贴:
100的阶乘的结果的每位数之和等于多少? http://www.exceltip.net/thread-7618-1-1-11314.html
相关文章推荐
- sql 语句 编写一个函数用来精确计算某个人的当前年龄(精确到一位小数),比如:20.3岁
- 编写函数计算n的阶乘(n<10),n为函数参数。在main函数中调用该函数计算1!+2!+……+n!
- Python 导入自定义模块函数,安装NLTK,导入精确计算
- C 自定义函数计算数组长度
- 编写一个函数,可以接收任意多个数,并计算它们的和
- 计算阶乘的函数
- 1、请编写函数foo(int x, int y, int n) 计算:随机生成x个大小为[1,y]的正整数,它们的和为n的概率是多少?语言仅限于PHP、C/C++、Java中的一种。
- 自己编写的计算图像直方图的函数
- php计算剩余时间的自定义函数
- C#阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右
- 阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右
- 6-8 简单阶乘计算(10 分) 本题要求实现一个计算非负整数阶乘的简单函数。
- sqlserver中编写自定义函数中的返回值问题
- 用C++编写递归函数GetPower(int x,int y)计算x的y次幂,在同一程序里中针对整型和实型实现两个重载的函数;在主程序中实现输入输出
- (函数题)4-10 阶乘计算升级版
- c程序:编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数
- 编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
- 7.5 利用函数fact()计算1到n之间所有阶乘
- 自定义fact(n)函数求阶乘的累加和
- 作业五-设计一个程序计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差.