Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6833|回复: 28

出题:看看谁的代码最简单-求自然数的阶乘n!的结果末尾零的个数

[复制链接]
发表于 2008-1-20 10:35 | 显示全部楼层 |阅读模式
<p>自定义函数学过了,来用用试试吧。</p><p>用vba编个自定义函数,求一个自然数的阶乘n!的结果末尾零的个数。</p><p>&nbsp;刚刚有人要解释以下阶乘是什么意思,解释一下.</p><p>n!=1*2*3*4*.........*n</p><p>5!=1*2*3*4*5=120</p>
[此贴子已经被作者于2008-1-22 11:07:41编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2008-1-20 10:40 | 显示全部楼层
回复

使用道具 举报

发表于 2008-1-20 10:49 | 显示全部楼层

<p><br/>好像1句话就够了<br/><br/>Function 尾数(Num As Range) As Long<br/>尾数 = Int(Num / 5)<br/>End Function<br/><br/>========================================================</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">&nbsp;&nbsp; -------------------这种方法结果不对的.</font></p>
[此贴子已经被legend_chen于2008-1-20 11:49:30编辑过]
回复

使用道具 举报

 楼主| 发表于 2008-1-20 10:54 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>Luckyguy2008</i>在2008-1-20 10:49:00的发言:</b><br/><br/>好像1句话就够了<br/><br/>Function 尾数(Num As Range) As Long<br/>尾数 = Int(Num / 5)<br/>End Function<br/><br/><br/></div><p></p><p>&nbsp;</p><p>&nbsp;</p><p>不仅要代码简单,同时要保证结果正确。</p>
回复

使用道具 举报

发表于 2008-1-20 10:55 | 显示全部楼层

建议题目改求尾数0的个数,搞晕了

<p>Function jxlg(n As Integer) As Integer<br/>Dim jxn, jnr, k As Integer<br/>jxn = 1<br/>For k = 2 To n<br/>&nbsp;jxn = jxn * k<br/>Next k<br/>k = 1<br/>jxr = jxn<br/>Do<br/>jxr = Int(jxr / 10)<br/>jxn = jxn / 10<br/>k = k + 1<br/>Loop Until jxn &lt;&gt; jxr<br/>jxlg = k - 2<br/>End Function</p>
[此贴子已经被作者于2008-1-20 14:17:29编辑过]
回复

使用道具 举报

发表于 2008-1-20 10:57 | 显示全部楼层

<div class="quote" twffan="done"><b>以下是引用<i>Luckyguy2008</i>在2008-1-20 10:49:00的发言:</b><br/><br/>好像1句话就够了<br/><br/>Function 尾数(Num As Range) As Long<br/>尾数 = Int(Num / 5)<br/>End Function<br/><br/><br/></div><p></p>不要说理解了,怎么用都不知道[em04]
回复

使用道具 举报

发表于 2008-1-20 11:00 | 显示全部楼层

<p>是不是用递归调用做的吧?</p>
回复

使用道具 举报

 楼主| 发表于 2008-1-20 11:03 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>baby123456</i>在2008-1-20 11:00:00的发言:</b><br/><p>是不是用递归调用做的吧?</p></div><p>没有标准答案,你可以用任何办法,只要代码最简单,也许你的答案就是最好的答案。</p>
回复

使用道具 举报

发表于 2008-1-20 11:15 | 显示全部楼层

<p>来一个长的</p><p>Function 尾数(Num As Range) As Long<br/>&nbsp;&nbsp;&nbsp; Dim i%, k%<br/>&nbsp;&nbsp;&nbsp; k = 0<br/>For i = 1 To Len(Num)<br/>&nbsp;&nbsp;&nbsp; If Num Mod 10 ^ i = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k = k + 1<br/>&nbsp;&nbsp;&nbsp; Else: Exit For<br/>&nbsp;&nbsp;&nbsp; End If<br/>Next<br/>&nbsp;&nbsp;&nbsp; <br/>尾数 = k</p><p>End Function</p><p>&nbsp;</p><p>===============================================================</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff0000">agui,题目是要你求介乗,不是10的n次方,.</font></p>
[此贴子已经被legend_chen于2008-1-20 12:15:21编辑过]
回复

使用道具 举报

发表于 2008-1-20 11:30 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>Luckyguy2008</i>在2008-1-20 10:49:00的发言:</b><br/><br/>好像1句话就够了<br/><br/>Function 尾数(Num As Range) As Long<br/>尾数 = Int(Num / 5)<br/>End Function<br/><br/><br/></div><p></p>25!最后应为6个0,但这个函数的结果为5
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 18:01 , Processed in 0.328653 second(s), 3 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表