반응형
C 언어, 피보나치 수열 for 문으로 구하기
글, 수알치 오상문
반복문을 이용하여 피보나치 수열 값을 구하는 예제입니다.
피보나치 수열의 처음과 두 번째 값은 1입니다. (어떤 문제는 0,1을 처음, 두 번째로 보기도 함)
그 이후 3번째 n 부터는 그전(n-1)과 전에전(n-2)번째 값을 더한 값입니다.
1, 1, 2, 3, 5, 8, 13, 21, .... (또는 0, 1, 1, 2, 3, 5, 8, 13, 21, .... )
#include <stdio.h>
int fibonacci(int n)
{
int i;
int one = 1 , two = 1, result = -1; // one은 n-2, two는n-1 값
if(n==1 || n==2) // 1 또는 2면 1을 돌려줌
return 1;
else {
for(i=3; i<=n; i++) {
result = one + two; // 직전(n-1)과 직직전(n-2) 값을 더해서 돌려줌
one = two; // 직직전(n-2) = 직전(n-1)
two = result; // 직전(n-1) = 현재값(now)
}
}
return result;
}
int main(int argc, char *argv[])
{
int i;
for(i=1; i<=20; i++)
printf("%d 번째 피보나치 수열 값: %d\n", i, fibonacci(i));
return 0;
}
<이상>
반응형
'C' 카테고리의 다른 글
[네트워크] 소켓프로그래밍 기초, 활용 가이드 링크 (0) | 2018.09.02 |
---|---|
C 언어, 팰린드롬 Palindrome 소스 (0) | 2018.08.27 |
C 언어, 세 정수의 최대공약수 (0) | 2018.08.06 |
C 언어, 두 정수 또는 세 정수 중에서 가장 큰 수나 작은 수 찾기 (0) | 2018.08.06 |
C 언어, n 번째 약수 찾기 (0) | 2018.08.05 |