>  기사  >  백엔드 개발  >  n번째 피보나치 수가 10의 배수인지 확인하는 효율적인 방법은 무엇입니까?

n번째 피보나치 수가 10의 배수인지 확인하는 효율적인 방법은 무엇입니까?

王林
王林앞으로
2023-09-05 08:05:08733검색

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입니다. 따라서 매 15번째 피보나치 항은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제