一个高效的方法来检查第n个斐波那契数是否是10的倍数?

一个高效的方法来检查第n个斐波那契数是否是10的倍数?

这里我们将看到一种有效的方法来检查第 n 个斐波那契项是否是 10 的倍数。假设斐波那契项为 {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987}。因此,这里第 15 个斐波那契数(从 0 开始计数)可以被 10 整除。对于 16,它将返回 true。

一种最简单的方法是生成直到给定项的斐波那契数,并且检查是否能被10整除?但这个解决方案并不好,因为它不适用于较大的项。

另一个好的方法如下 –

斐波那契项 – 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

这些数字(标记为粗体字母)可以被2整除。它们的间隔是3个斐波那契项。同样,请检查 –

斐波那契项:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

每第 5 项都可以被 5 整除。现在 3 和 5 的 LCM 是 15。所以我们可以说每 15th 斐波那契项都可以被 10 整除。

让我们看看算法来理解这个想法。

算法

fiboDivTen(term)

Begin   if term is divisible by 15, then      return true   end if   return falseEnd

登录后复制

Example

的中文翻译为:

示例

#includeusing namespace std;bool fiboDivTen(int term) {   if(term % 15 == 0){      return true;   }   return false;}int main() {   int term = 45;   if (fiboDivTen(term))      cout 

输出

Divisible

登录后复制

以上就是一个高效的方法来检查第n个斐波那契数是否是10的倍数?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2583785.html

(0)
上一篇 2025年3月6日 14:39:09
下一篇 2025年3月3日 19:12:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论