【问题标题】:Recursive function to convert from decimal to binary递归函数将十进制转换为二进制
【发布时间】: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


【解决方案1】:
Function recursive(number As Integer) As String

        Dim result As String

        If number > 0 Then

            Dim binaryNumber As String
            Dim digit As Integer
            digit = number Mod 2
            number = Int(number / 2)
            binaryNumber = recursive(number)
            result = result & binaryNumber & digit

        End If

        recursive = result
End Function

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2012-04-19
    • 1970-01-01
    • 2013-09-23
    • 2016-06-27
    • 2011-07-23
    • 1970-01-01
    • 2021-07-09
    • 2010-12-08
    相关资源
    最近更新 更多