[백준(BOJ)] 2747번 피보나치 수, C언어 풀이

2020. 7. 20. 13:55·PS(Problem Solving)/C

<피보나치 수>, 2747번

 

문제

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다.

n=17일때 까지 피보나치 수를 써보면 다음과 같다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 n이 주어진다. n은 45보다 작거나 같은 자연수이다.

출력

첫째 줄에 n번째 피보나치 수를 출력한다.

 

예제 입력 1 복사

10

예제 출력 1 복사

55

 

풀이

이 문제는 피보나치 수열을 이해하면 쉽게 해결할 수 있는 문제이다. 나는 피보나치 수열의 첫 번째 값은 0, 두 번째 값이 1인 것을 각각 변수 a, b에 저장한 후 for문을 돌려서 변수 c = a + b라는 식을 이용해 피보나치 수열을 풀이했다.

 

#include <stdio.h>

int main(void)
{
	int a = 0;
	int b = 1;
	int c;
	int num;

	scanf("%d", &num);

	if (num < 2)
	{
		if (num == 0)
			printf("0");
		else
			printf("1");
	}
	else
	{
		for (int i = 1; i < num; i++)
		{
			c = a + b;
			a = b;
			b = c;
		}
		printf("%d", c);
	}

	return 0;
}
저작자표시 비영리 변경금지 (새창열림)
'PS(Problem Solving)/C' 카테고리의 다른 글
  • [백준(BOJ)] 1924번 2007년, C언어 풀이
  • [백준(BOJ)] 10870번 피보나치 수 5, C언어 풀이
  • 윤성우의 열혈 C프로그래밍 16장, 다차원 배열 문제 풀이
  • 버블 소트, 버블 정렬(BubbleSort) 오름차순 및 내림차순 C언어 풀이
SiwonHae
SiwonHae
프로그래밍을 공부하고 있는 학생입니다.
  • SiwonHae
    시원해의 블로그
    SiwonHae
  • 전체
    오늘
    어제
    • 전체보기 (150)
      • PS(Problem Solving) (95)
        • C (25)
        • C++ (33)
        • JAVA (37)
      • Algorithm & Data Structure (13)
      • Computer Science (12)
        • Network (2)
        • Design Pattern (10)
      • Back-end (6)
        • Spring (5)
      • Front-end (1)
        • React (1)
      • JAVA (4)
      • 정보처리기사 (17)
      • SQLD (2)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
SiwonHae
[백준(BOJ)] 2747번 피보나치 수, C언어 풀이
상단으로

티스토리툴바