求助:一道VB题,请大家帮忙,谢谢
Functionfun(aAsInteger,nAsInteger)AsIntegerDimmAsIntegerWhilea>=na=a-nm=m+1Wendfun=mE...
Function fun(a As Integer, n As Integer) As Integer
Dim m As Integer
While a >= n
a = a - n
m = m + 1
Wend
fun = m
End Function
该函数的返回值是__
能给说明白点原因吗?谢谢 展开
Dim m As Integer
While a >= n
a = a - n
m = m + 1
Wend
fun = m
End Function
该函数的返回值是__
能给说明白点原因吗?谢谢 展开
3个回答
展开全部
准确的说fun返回的是a除以n所得值的整数部分,就是 fun=int(a/n)
原因是当a>=n时。进行循环(while a>=n)
第一次,a值减掉一个N,M为1(M初始为0),你可以这样理解:当a/n时,为了使=号成立,可以写成这样,a/n=m 余(a-n) 照这样看来第一次就是这样:a/n=1 余a-n,同理,如果a-n还能>=a时,再进行第二次循:a/n=2余a-n-n,再继续,如果a-n-n还大于=n,就进行第三次循环,a/n=3余a-n-n-n,,,,
一直到a-(m*n)小于a,就不循环了,因为无法让m增大了,否则=就不成立了
最后循环完了后,让fun=m.显然,这个最终的M值就是a除以n所得值的整数部分
楼主,我这样说能明白吗?呵呵,我的文字功底有限,不明之处还请多理解。
原因是当a>=n时。进行循环(while a>=n)
第一次,a值减掉一个N,M为1(M初始为0),你可以这样理解:当a/n时,为了使=号成立,可以写成这样,a/n=m 余(a-n) 照这样看来第一次就是这样:a/n=1 余a-n,同理,如果a-n还能>=a时,再进行第二次循:a/n=2余a-n-n,再继续,如果a-n-n还大于=n,就进行第三次循环,a/n=3余a-n-n-n,,,,
一直到a-(m*n)小于a,就不循环了,因为无法让m增大了,否则=就不成立了
最后循环完了后,让fun=m.显然,这个最终的M值就是a除以n所得值的整数部分
楼主,我这样说能明白吗?呵呵,我的文字功底有限,不明之处还请多理解。
富港检测技术(东莞)有限公司_
2024-06-06 广告
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
展开全部
可以理解为 a mod n ,整除
---补充说明如下---------------
2个数,a和n,只要a>n就循环a-n,计算减了几次累计放在m,m是个结果返回值。
比如a=15 n=4,a>n吧,a-n后 a=11 m=1再来一次,m=2,a=7,再来 m=3,a=3
现在a>n不成立,不再循环,结果m=3就是 a 整除n,15 \4的结果,整数部分。
不过这里有一些问题存在,要求a,n 都>0,如果n <=0 那死循环了。
还有fun(a as integer ...改成fun(byval a as integer 好一些,不会改变原变量 。当然考试或特殊用途另论了。
---补充说明如下---------------
2个数,a和n,只要a>n就循环a-n,计算减了几次累计放在m,m是个结果返回值。
比如a=15 n=4,a>n吧,a-n后 a=11 m=1再来一次,m=2,a=7,再来 m=3,a=3
现在a>n不成立,不再循环,结果m=3就是 a 整除n,15 \4的结果,整数部分。
不过这里有一些问题存在,要求a,n 都>0,如果n <=0 那死循环了。
还有fun(a as integer ...改成fun(byval a as integer 好一些,不会改变原变量 。当然考试或特殊用途另论了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看, a 每减一次 n,m 就加 1
就是求 a 中有多少个 n 嘛
转换为数学计算就是 m=a\n “\” 为整除符号
fun = a\n
就是求 a 中有多少个 n 嘛
转换为数学计算就是 m=a\n “\” 为整除符号
fun = a\n
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询