@Kashfia Rahman Oyshei:您的评论已被删除,因为它揭示了潜在的解决方案。关于您的解决方案失败D的D值,请查看对提示问题的其他评论。
它在我的Matlab中工作
我对我的代码很有信心,但它不能在d>= 100的情况下工作,因为缺乏精度,因为它超过了double和uint64的能力,所以您不能测试这个数字是否为偶数。
我认为第四个后的断言有一个错误
这有什么问题?它在Matlab为我工作。
我2
fibonacci()函数位于工具箱中。只有香草Matlab的功能被Cody认可。
我的代码工作到d=50,在测试套件中较高的值上失败。我认为这是一个硬件限制的舍入误差(?淹没)与非常大的数字。当我测试eps(fibonacci(100))在我的系统上,答案是6.5,即我的系统不能准确区分奇数和偶数在那么大的数字。
狮子座,您的理论是正确的:您计算为D> 50的数字太大,无法由32位数字表示,并且不会正确计算MOD(x,2)。非常仔细地仔细考虑Fibonacci序列中的数字模式,看看模式是否出现。
实际上,我的代码在D = 50之前工作,因为它是一个大量的,所以我们的算法是正确的,我们不应该担心它,我想我们在这一挑战中取得了成功。
不是真正的解决方案。如果展开测试套件,将失败。
不是一般的解决方案。如果测试套件扩展,将失败。