c 언어는 피보나치 수열의 n위 숫자를 구한다
6650 단어 C 언어 기초
피보나치 수열의 n위 구하기;
1. 귀속적인 방법으로
주의해야 할 것은 귀속 방식을 사용하면 이해하기 쉬워 보이지만 연산량이 많다는 것이다.(큰 숫자를 입력할 때 이 방법을 권장하지 않음) 연산량은 지수식으로 증가한다.
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int Fib(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
return Fib(n - 1) + Fib(n-2);
}
int main()
{
// n
int n = 0;
int ret = 0;
printf(" n ");
scanf("%d", &n);
ret = Fib(n);
printf("%d
", ret);
system("pause");
return 0;
}
2. 함수로 하는 방법;
다음 코드는 함수 부분만 썼는데 이 부분은 이해하기 어렵다. 특히 순환 부분에서 변수를 업데이트해야 하고 변수의 유형은longlong형을 사용해야 넘치지 않도록 주의해야 한다.또한 인쇄할 때 인쇄 형식이 ll형임을 주의하십시오.예:
printf("%lld", Fib_h(100)); 100번째 숫자의 값을 출력합니다. 이 숫자는 천문학적 81930378546560963입니다. [장점] 이런 방법은 이해하기 어렵지만 컴퓨터의 연산량을 줄일 수 있습니다. 만약 귀속적인 방법으로 100번째 숫자의 값을 계산한다면 몇 시간이 걸릴 것 같지만 순환은 1초도 안 될 것입니다.
int Fib_h(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
long long last1 = 1;// i-1
long long last2 = 1;// i-2
long long sum = 0;
for (int i = 3; i <= n; ++i)
{
sum = last1 + last2;
// last1,last2
last2 = last1;
last1 = sum;
}
return sum;
}
다른 방법도 있습니다. 예를 들어 그룹, 대기열, 뒤에 있는 블로그는 계속 업데이트됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어는 피보나치 수열의 n위 숫자를 구한다1. 귀속적인 방법으로 주의해야 할 것은 귀속 방식을 사용하면 이해하기 쉬워 보이지만 연산량이 많다는 것이다.(큰 숫자를 입력할 때 이 방법을 권장하지 않음) 연산량은 지수식으로 증가한다. 2. 함수로 하는 방법; ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.