n 番目のフィボナッチ数が 10 の倍数であるかどうかを確認する効率的な方法はありますか?

王林
リリース: 2023-09-05 08:05:08
転載
774 人が閲覧しました

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 を返します。

最も簡単な方法の 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 で割り切れると言えます。

この考え方を理解するためにアルゴリズムを見てみましょう。

Algorithm

fiboDivTen(term)

Begin
   if term is divisible by 15, then
      return true
   end if
   return false
End
ログイン後にコピー

Example

の中国語訳は次のとおりです:

Example

#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";
}
ログイン後にコピー

Output

Divisible
ログイン後にコピー

以上がn 番目のフィボナッチ数が 10 の倍数であるかどうかを確認する効率的な方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート