ここでは、n 番目のフィボナッチ項が 10 の倍数であるかどうかを確認する効率的な方法を見ていきます。フィボナッチ項が {0、1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987} であるとします。したがって、ここで 15 番目のフィボナッチ数 (0 から数えて) は 10 で割り切れます。 16 の場合は true を返します。
最も簡単な方法の 1 つは、指定された項までのフィボナッチ数を生成し、それが 10 で割り切れるかどうかを確認することです。ただし、この解決策は大きなアイテムには機能しないため、適切ではありません。
もう 1 つの良い方法は次のとおりです。
フィボナッチ項 - 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 の最小公倍数は 15 になります。したがって、すべての 15th フィボナッチ項は 10 で割り切れると言えます。
この考え方を理解するためにアルゴリズムを見てみましょう。Begin if term is divisible by 15, then return true end if return false End
#include<iostream> using namespace std; bool fiboDivTen(int term) { if(term % 15 == 0){ return true; } return false; } int main() { int term = 45; if (fiboDivTen(term)) cout << "Divisible"; else cout << "Not Divisible"; }
Divisible
以上がn 番目のフィボナッチ数が 10 の倍数であるかどうかを確認する効率的な方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。