遇见王沥川 电视剧32集:帮~~~VB的题目~~拜托

来源:百度文库 编辑:高考问答 时间:2024/04/29 18:21:14
function trans(byval num as long)as long
dim k as long
k=1
do while num
k=k*(num mod 10)
loop
trans=k
print trans
end function
private sub command1_click()
dim m as long
dim s as long
m=inputbox("输入一个数")
s=trans(m)
end sub
如果输入789,则输出的结果是什么?答案是504,能告诉我是怎么得出来的吗?那个trans是什么意思?
谢谢讲解~~
不好意思,少输入了一行,k=k*(num mod 10)后还有一行num=num\10
麻烦再解答下!!!谢谢了

trans是函数的名字。函数是指把一个或者几个已知的数经过人为设定的运算表达式后输出最后的结果值。
比如:EXECL里的SUM(A1:A2)函数就相当与等于A1+A2的值。

这里的trans也是一样。

不过你帖出来的代码是错误的。
do while num
k=k*(num mod 10)
loop
是一个死循环。

在那个while loop循环中,k是变化的,num没有变化,你的while条件是num,我想肯定错了。应该是关于k的一个条件吧。仔细看看代码先!

**********************
Do While num
k = k * (num Mod 10)
num = num \ 10
Loop
********************************
说明:
此循环只要num=0循环才终止。
输入num:789
k = k * (num Mod 10)==》k=k*(789 mod 10)==>k=1*9
num = num \ 10 ==>num=78
--------------------------------
k = k * (num Mod 10)==》k=k*(78 mod 10)=9*8=72
num = num \ 10 ==>num=78\10=7
------------------------------------------

k = k * (num Mod 10)==》k=k*(7 mod 10)==>k=k*7=72*7=504
num = num \ 10 ==>num=7\10=0 此时num=0循环终止
因此输出 504