详细内容

VB简单问题教科书上的东西
2008-10-30 20:38:36 提供者:教科书 浏览次数
编写一个求N!的函数过程PrivateFunctinonFact(ByValNasInteger)AsLongDimKasIntegerFact=1IfN=0orN=1theneixtfunctionelsefork=1tonfack=fact*knextkendifendfunction我不明白的是,为什么要把1和0给分开来?一起不行吗?

参考答案:0是要分开来的了,不然FACT为0了,你得知道0!=1
1倒是可以不分开来.
你代码都有错的
PrivateFunctionFact(ByValNAsInteger)AsLong
DimKAsInteger
Fact=1
IfN=0Then
ExitFunction
Else
ForK=1ToN
fack=Fact*K
NextK
EndIf
EndFunction不行,0的阶乘无意义,而1的阶乘等于本身

回复:不要把VB和数学完全挂钩。在数学里,0!=1当然不错,可是你想想,这个结果,不也是人为规定的吗?难道你能说,0!=1是计算出来的吗?不给你这个规定,就没有这个结果。所以在VB编写这个程序的时候,也要对0作出人为规定,强制他=1,这样才能把VB和实际数学保持同步。这就好像分段函数,0的计算要单独拿出来,不能和别的数字混为一谈。所以针对这个题目来说,0必须要分开,其他的数字,都可以归为一类,1也可以归到下面一类。

本周热门栏目

本周热门文章

Copyright © 2007 - 2010 AD.PAOSHANG.COM, Inc.