C++를 사용하여 Pell 번호 찾기

WBOY
풀어 주다: 2023-08-30 18:09:06
앞으로
873명이 탐색했습니다.

C++를 사용하여 Pell 번호 찾기

주어진 문제에서 정수 n이 주어졌고 해당 위치의 주문 번호인 Pn을 찾아야 합니다. 이제 우리가 알고 있듯이 철자 번호는 다음 공식에 의해 주어진 수열의 일부입니다 - Pn= 2*Pn-1+ Pn-2

처음 두 개의 시작 숫자 - P0= 0 and P1= 1

Finding Method Solution

이제 이 문제를 재귀와 반복이라는 두 가지 방법으로 해결하겠습니다.

Recursive Method

이 공식에서는 Pell Number 공식을 재귀적으로 적용하고 n번 반복합니다.

Example

#include  using namespace std; int pell(int n) { if(n <= 2) return n; return 2*pell(n-1) + pell(n-2); } int main() { int n = 6; // given n cout << pell(n) <<"\n"; // Pell number at that position. return 0; }
로그인 후 복사

Output

70
로그인 후 복사
로그인 후 복사

위 코드 설명

이 접근 방식에서는 n이 2보다 작거나 같을 때까지 pell(n-1) && pell(n-2)을 호출하여 재귀를 사용합니다. 2까지의 철자가 주어진 숫자와 동일하다는 것을 안다. 위 프로그램의 전체 시간 복잡도는O(N)이며, 여기서 N은 주어진 숫자입니다.

반복 방법

이 방법에서는 위와 동일한 수식을 사용하지만 재귀 함수 대신 for 루프를 사용하여 숫자를 계산합니다.

Example

#include  using namespace std; int main() { int n = 6; // given n. int p0 = 0; // initial value of pn-2. int p1 = 1; // initial value of pn-1. int pn; // our answer. if(n <= 2) // if n <= 2 we print n. cout << n <<"\n"; else { for(int i = 2; i <= n; i++) { // we are going to find from the second number till n. pn = 2*p1 + p0; p0 = p1; // pn-1 becomes pn-2 for new i. p1 = pn; // pn becomes pn-1 for new i. } cout << pn << "\n"; } return 0; }
로그인 후 복사

Output

70
로그인 후 복사
로그인 후 복사

위 코드 설명

주어진 프로그램에서 우리는 2에서 n으로 이동하고 단순히 pn-2의 값을 pn-1로 업데이트하여 pn-1의 값을 변경합니다. n에 도달할 때까지 값은 pn으로 업데이트됩니다.

결론

이 글에서는 재귀와 반복을 사용하여 N번째 주문 번호를 찾는 문제를 해결했습니다. 우리는 또한 이 문제를 해결하기 위한 C++ 프로그램과 이 문제를 해결하는 완전한 방법(정상적이고 효율적인)을 배웠습니다. C, Java, Python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다.

위 내용은 C++를 사용하여 Pell 번호 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!