vb 求阶乘之和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 求阶乘之和相关的知识,希望对你有一定的参考价值。
是 求阶乘之和程序代码
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer
Dim sum1 As Long, sum2 As Long
n = 3
sum1 = 0
For i = 1 To n
sum2 = 1
For j = 1 To i
sum2 = sum2 * j
Next j
sum1 = sum1 + sum2
Next i
Label1.Caption = Label1.Caption + Str(sum1)
End Sub
在这里不能理解
For i = 1 To n
sum2 = 1
For j = 1 To i
sum2 = sum2 * j 这部分。。。。。。 求高手们指点~~
sum2 = 1
For j = 1 To i
sum2 = sum2 * j
Next j
sum1 = sum1 + sum2
Next i
1、上面这几句是计算阶乘之和的核心部分。它包含一个外循环和一个内循环。
2、For j = 1 To i
sum2 = sum2 * j
Next j
是内循环。在这个循环中,sum2的初值是1,执行这个循环,j的值从1一直取到i,每取一个j,就把它的值乘到sum2里,也就是sum2=1*2*3*......*i,即得到i的阶乘。
3、For i = 1 To n
sum2 = 1
‘求i的阶乘的内循环,sum2=i!
sum1 = sum1 + sum2
Next i
这部分是外循环,i的值从1一直取到n,每次都执行内循环求出i的阶乘,并加到sum1里,sum1的初值是0,最后求得从1至n的阶乘的和sum1=1!+2!+......+n!。
4、剩余部分:Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer
Dim sum1 As Long, sum2 As Long
n = 3
sum1 = 0
‘大小循环体,求1至n的阶乘的和sum1=1!+2!+......+n!
Label1.Caption = Label1.Caption + Str(sum1)
End Sub
意思如下:
dim语句是声名变量,
两个赋值语句,n = 3
执行循环体求出1-3的阶乘和:sum1=1!+2!+3!
并在label1上显示出结果。本题在label1上显示9。(sum1=1!+2!+3!=1+2+6=9) 参考技术A 这里是一个双重循环,for j=1 to i ....next j 是第内循环,用于求i的阶乘,外循环是从for i=1 to n ...到next i,用于把从1到n的每个数的阶乘相加。
sum2是用来表示一个阶乘的,因此在每次球下一个数的阶乘时必须用sum=1置为一。 参考技术B dim
i,
j
as
integer
dim
sum,
t
as
double
sum
=
0
for
i
=
1
to
20
t
=
1
for
j
=
1
to
i
t
=
t
*
j
next
j
sum
=
t
+
sum
next
i
msgbox
"1-20的阶乘之和为:"
&
sum,
vbinformation,
"确认"
你要先建立一个窗体,在窗体上建个按钮,再将上述代码粘贴到按钮的过程内。 参考技术C 1) For i = 1 To n
2) sum2 = 1
3) For j = 1 To i
4) sum2 = sum2 * j
5) Next j
6) sum1 = sum1 + sum2
7) Next i
这是循环的嵌套。内层循环(第3~5行)用来求阶乘,外层循环第6行主要来求阶乘的和,是一个累加器。 参考技术D 这是一个典型的循环嵌套
因为每执行一次For j = 1 To i
sum2 = sum2 * j 这段代码
sum2就被改变成i!了如果不对之进行初始化即sum2 = 1
sum2就会参与下一次循环
另外i从1加到n,j对每个i从1加到i
这样就可以算出
1!+2!+……+n!
求阶乘之和
1 问题
用高精度计算出 S = 1! + 2! + 3! + 4! + 5! + n!(n<=50)。
其中“!”表示阶乘,例如:5!=5×4×3×2×1。
2 方法
运用for循环内嵌,第一个for循环,从1到n算阶乘,第二个for循环,就套用阶乘算法。
3 实验结果与讨论
通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。
代码清单 1
n=eval(input()) b=0 for i in range(1,n+1): c=1 for j in range(1,i+1): c*=j b+=c print(b) |
4 结语
针对这个问题,可以发现,python是可以数学上的阶乘求和问题的,运用这个程序,可以解决关于阶乘运算困难的问题。
以上是关于vb 求阶乘之和的主要内容,如果未能解决你的问题,请参考以下文章