귀속과 비귀속으로 피보나치 수열을 구하다
귀속적 방법
#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;
}
비귀속 피보나치 수열 방법은 그 추이 함수를 찾아 순환으로 그 값을 구하는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 간단한 파일 r/w 조작 방법데이터의 입력과 출력은 거의 모든 C 언어 프로그램과 수반된다. 입력이란 원본에서 데이터를 얻는 것이다. 출력은 단말기에 데이터를 쓰는 것으로 이해할 수 있다.이곳의 원본은 키보드, 마우스, 하드디스크, 시디, 스캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.