excel - 柯拉兹猜想。找到最小的 a_k
问题描述
我正在尝试创建一个函数,它将返回最小的 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
函数 Collatz 工作正常,但函数 Find 总是返回零。我该如何改进呢?
解决方案
你忘了返回结果。
查找 = k
推荐阅读
- python - 如何隔离轮廓内的所有内容,对其进行缩放并测试与图像的相似性?
- snowflake-cloud-data-platform - 如何将数据从一个雪花实例迁移到另一个最佳性能选项?
- twilio - 可编程 SMS:通过 API 与 twilio.com/console 创建服务资源
- html - HTML 元素未在 Thymeleaf 条件元素中呈现
- android - PlayReady 的 AMediaDrm_getKeyRequest 中的 init 预期值
- java - 回收站视图未使用 notifyDataSetChanged() 更新;
- python - python字符串操作从字符串中获取名字姓氏和dob
- python - 如何在 python、PIL 和 imageio 中读取和写入 gif 似乎不起作用
- php - 是否所有的 php 脚本,甚至在不同的 iframe 中运行,都一个接一个地滚动,或者它们可以同时发生?
- c++ - 尝试使用 extern "C" 在 C 中调用 C++ 方法,得到“未定义引用”对象的链接器错误