vb 1000!~10000!含有的末尾零个数

来源:百度知道 编辑:UC知道 时间:2024/06/04 13:38:45
初学

什么意思,求1000的阶乘末尾含有的零个数吗
换个思路,尾数为零是什么概念呢,2*5=10 有尾数,10自然也有尾数,其它的不行(4*5=20,但是4=2*2)
那么,十个数就有2个零,如果其它数呢,只要能配对,即2跟5配对,10再单独分开即可

如下:
Private Sub Command1_Click()
Dim a As Integer, b As Integer 'a十的个数,b2跟5配对的数
If Text1.Text Mod 10 >= 5 Then
b = (Text1.Text \ 10)+1
Else '单独只有2没有5也不能配对,所以要减1个配对
b = Text1.Text \ 10
End If
a = Text1.Text \ 10
MsgBox a + b
End Sub

楼上的,你们自己动过脑子没有?
这样定义不会溢出么?
这题其实还是较简单的,因为不用算出结果
所以,只要保留3位数字即可,而且只要有一个乘积为10,则以后的每个阶末尾都为0
所以只要
Private Sub Command1_Click()
dim a as integer
dim i as integer
dim n as integer
dim m as integer
a = 1
m=10000
For i = 1 To m
a = a * i
a= a mod 1000
if a mod 10 =0 then n=n+1
Next
Text1.Text = a
End Sub

上面这个程序其实也不要执行完10000次,一般从1执行到5,后面就全为有0的了
因为2*5=10
10乘以任何数都会带0的

Private Sub Form_Load()
Dim i As Integer