excel - 柯拉兹猜想。找到最小的 a_k

标签 excel vba

我正在尝试创建一个函数,它将返回最小的 a_k,使得 a_k 等于 1。我写了这段代码:

Function Collatz(N As Integer) As Integer

    If N Mod 2 = 0 Then
        F = N / 2
    Else
        F = (3 * N) + 1
    End If

    Collatz = F

End Function



Function Find(N As Integer) As Integer
 k = 0
 Do While N <> 1
    N = Collatz(N): k = k + 1
    If k > 10000000000# Then Exit Do
 Loop

End Function

函数 Collat​​z 工作正常,但函数 Find 总是返回零。我该如何改进呢?

最佳答案

你忘了返回结果。

查找 = k

关于excel - 柯拉兹猜想。找到最小的 a_k,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59542865/

相关文章:

excel - 如何在 vba 代码中执行 "Save As",用日期戳保存当前的 Excel 工作簿?

ms-access - Excel - VBA - 将数据保存到 Access 数据库

excel - VBA 字符串 - 添加换行符\n 等效项不起作用

vba - 如何在 Excel VBA 中匹配/搜索 Sheet2.Range ("A1"中 Sheet1.Range ("A1:A10") 的值

vba - 单个单元格 (A1) 的范围地址有时会返回单元格范围地址 "A1:A1"而不是 "A1"

excel - 为什么我的代码不起作用?是因为 LastRow0 = .Cells(.Rows.Count, "AI").End(xlUp).row

组合框中的 VBA 自动完成文本

mysql - 多列上的数据透视样式计算

c# - ClosedXml 中的 "Cannot convert theme color to Color"

excel - 用基于另一个单元格值的非空白单元格填充空白单元格值