귀속과 비귀속으로 피보나치 수열을 구하다

귀속적 방법

#include
#include
 
int FeiBo(int f)
{
	int n = 0;
	if (0 == f)
		printf("0 0
"); else if (1 == f || 2 == f) n = 1; else n = FeiBo(f - 2) + FeiBo(f - 1); return n; } int main() { int num = 0; int key = 0; printf("
"); scanf("%d", &key); num = FeiBo(key); printf("%d %d
", key,num); system("pause"); return 0; }

귀환의 방법으로 생각하면 ***첫째:***이 문제를 구하는 귀환 표현식을 찾아내고 호출을 멈추게 하는 방식은 마지막으로 상수에 값을 부여하는 것이다.***둘째, ***가 끊임없이 호출되는 것을 방지하기 위한 방법은 조건 판단을 가하고 특정한 조건을 만족시킨 후에 귀속 호출을 하지 않고 층층이 되돌아오는 것이다.함수의 귀속 호출은 두 단계로 나눌 수 있다. 하나는 점차적인 단계이고 원래의 문제를 끊임없이 새로운 하위 문제로 분해하여 최종적으로 이미 알고 있는 조건에 이르면 점차적인 단계가 끝난다.둘째, 회귀 단계는 이미 알고 있는 조건에서 출발하여 점차적인 역과정에 따라 하나하나 값을 구하여 회귀하고 최종적으로 점차적인 점차적인 점차의 시작에 도달하여 점차적인 호출을 완성한다. ***셋째:***는 일정한 규칙이 있다. 즉, 일반적으로 하나 또는 두 개의 판단을 한 다음에 되돌아오는 것이다.
**

비귀속구 피보나치 수열


**
#include 
#include
 
int fib(int n)
{
	int a1 = 1;
	int a2 = 1;
	int a3 = 0;
	if (n <= 2)
		return 1;
	else
	{
		while (n > 2)
		{
			a3 = a1 + a2;
			a1 = a2;
			a2 = a3;
			n--;
		}
		return a3;
	}
}
int main()
{
	int n = 0;
	printf(" n , n :
"); scanf("%d", &n); printf("%d", fib(n)); system("pause"); return 0; }

비귀속 피보나치 수열 방법은 그 추이 함수를 찾아 순환으로 그 값을 구하는 것이다.

좋은 웹페이지 즐겨찾기