【发布时间】:2020-02-14 16:10:50
【问题描述】:
我的代码转换数字 3 有问题
我想写一个将十进制数转换为二进制数的函数。必须使用递归原理。下面的代码我已经写好了。
Function recursive(number As Integer) As String
Dim result As String
If number > 0 Then
Dim binaryNumber As String
Dim digit As Integer
binaryNumber = recursive(number / 2)
digit = number Mod 2
result = result & binaryNumber & digit
End If
recursive = result
End Function
正确的结果:
- 输入:10
- 输出:1010
错误的结果:
- 输入:3
- 输出:101
它也可以很好地工作,但是当我尝试将十进制数转换为 3 时得到错误的结果。错误在哪里?
【问题讨论】:
-
不幸的是没有帮助。我必须编写自己的函数,它是递归的——这就是要求。
-
3、7、11 等会失败。你写“我必须编写自己的函数,这是递归的——这就是要求”。这是作业题吗?
-
如果
number是奇数,number / 2将使其浮动。尝试默认使用number \ 2进行整数除法
标签: excel vba recursion binary