VB程序:求S=1!+2!+3!+4!+5!+6!+7!+8!+……+99!的值是多少?
展开全部
99的阶乘接近10的156次方,也就是说,是一个155位的数值,这个数值在VB的数值类型中,是无法精确存储的。
一般算法类型的编程题目,会求这个值的后6位这样的问题,或者使用贪心算法计算阶乘和问题,这类问题通常不会超过10的阶乘值或者整数变量范围。
s=0
for i= 1 to 99
for j=1 to i
s1=1
s1=s1*j
next j
s=s+s1
next i
扩展资料:
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0。所以用正整数阶乘的定义是无法推广或推导出0!=1的。即在连乘意义下无法解释“0!=1”。
给“0!”下定义只是为了相关公式的表述及运算更方便。
通常所说的阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 0.5!,0.65!,0.777!都是错误的。但是,有时候会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。
参考资料来源:百度百科-阶乘
展开全部
谢谢伪代码给你,你自己再写.首先高清楚N!=1*2*...n,所以用两个循环来做,第一个做相加,第二个是做阶乘
s=0
for i= 1 to 99
for j=1 to i
s1=1
s1=s1*j
next j
s=s+s1
next i
s=0
for i= 1 to 99
for j=1 to i
s1=1
s1=s1*j
next j
s=s+s1
next i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-03-04
展开全部
Sub Main()
Dim c As Integer = 1
Dim sum As Integer = 0
Dim b As Integer = 0
For i = 1 To 99
b = i
While (b >= 1)
c += b * (b - 1)
b -= 1
End While
sum += c
i += 1
Next
Console.WriteLine(sum)
Console.Read()
End Sub
Dim c As Integer = 1
Dim sum As Integer = 0
Dim b As Integer = 0
For i = 1 To 99
b = i
While (b >= 1)
c += b * (b - 1)
b -= 1
End While
sum += c
i += 1
Next
Console.WriteLine(sum)
Console.Read()
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
99的阶乘接近10的156次方,也就是说,是一个155位的数值,这个数值在VB的数值类型中,是无法精确存储的。
一般算法类型的编程题目,会求这个值的后6位这样的问题,或者使用贪心算法计算阶乘和问题,这类问题通常不会超过10的阶乘值或者整数变量范围。
如果一定要求这个156位的精确数值和,那就需要使用“大数运算”的方法,通过数组来实现,但运算效率很低,具体可以百度搜“VB 大数乘法”获得参考代码。
一般算法类型的编程题目,会求这个值的后6位这样的问题,或者使用贪心算法计算阶乘和问题,这类问题通常不会超过10的阶乘值或者整数变量范围。
如果一定要求这个156位的精确数值和,那就需要使用“大数运算”的方法,通过数组来实现,但运算效率很低,具体可以百度搜“VB 大数乘法”获得参考代码。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询