|
楼主 |
发表于 2013-10-7 13:22
|
显示全部楼层
hwc2ycy 发表于 2013-10-7 07:58
求助题目更改为:输入一个正整数,求在这个数的各个数位中的偶数个数、奇数个数、总个数,并组成一个新数。如:输入3457,得134,再得123.
(1).将lSum = bEven + bOdd,移到下面(移出循环),运行后是正确的。有无改进?
(2).下面的sub test(),有什么用??????
Function getNewNumber(lNumber As String) As String '输入一个正整数,求在这个数的各个数位中的偶数个数、奇数个数、总个数,并组成一个新数。如:输入3457,得134,再得123.
Dim bOdd As Byte, bEven As Byte
Dim i As Integer
Dim lSum As Long
Dim bTemp As Byte
Debug.Print Len(lNumber)
If Not VBA.IsNumeric(lNumber) Then Exit Function
For i = 1 To Len(lNumber)
bTemp = Mid(lNumber, i, 1)
Select Case bTemp Mod 2
Case 0
bEven = bEven + 1
Case 1
bOdd = bOdd + 1
End Select
Next
lSum = bEven + bOdd '从上面移除循环
Debug.Print lNumber, bEven, bOdd, lSum
getNewNumber = bEven & bOdd & lSum
End Function |
|