티스토리 뷰
반응형
피보나치 수열은 앞과 뒤의 수를 더한 값으로 나열된다.
0, 1, 1, 2, 3과 같은 경우이다.
3번째 항 = 1번째 항 + 2번째 항,
4번째 항 = 2번째 항 + 3번째 항의 값이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <stdio.h>
int main(void)
{
int a = 0, b = 1, c; // a는 f0, b는 f1, c는 다음 항 결과
int i = 1, n; // i는 반복 변수
printf("몇 번째 항까지 구할까요? : ");
scanf_s(" %2d", &n);
for (i = 1; i <= n+1; ++i)
{
printf("%d ", a);
c = a + b;
a = b;
b = c;
}
return 0;
}
|
cs |
- 결과
- 설명
첫 항은 0, 두번째 항은 1이다.
그 뒤는 0+1(1), 1+1(2), 1+2(3), 2+3(5)
등으로 나아간다.
()안의 값에 해당하는
다음 예측 항을 c라고 두었다.
a | b | c | ||
-> | a | b | c | |
-> | a | b | c |
위 표와 같이 항들과 변수가 이동하며
값이 변해야 하므로,
c = a + b이고,
a = b이고,
b = c가 되는 것이다.
10번째 항까지 구하라고 했는데
값은 11개가 출력되었다.
11번째 줄에서 for (i = 1; i <= n+1; ++i) 라고 썼기 때문인데,
피보나치 수열은 0번째 항부터 시작하므로
11개가 출력되도록 i <= n+1을 적용시켰다.
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 08 함수 / 실행할 때마다 발생되는 난수 다르게 하기 (시드 사용) (0) | 2021.04.03 |
---|---|
[C언어] CHAPTER 07 반복문 / Programming 14 / 사용자가 입력한 정수 거꾸로 출력하기 (0) | 2021.03.29 |
[C언어] CHAPTER 07 반복문 / Programming 07 / 2와 100 사이에 있는 모든 소수를 찾는 프로그램 (0) | 2021.03.27 |
[C언어] CHAPTER 07 반복문 / goto문을 활용하여 중첩 반복문에서 외부로 빠지기 (0) | 2021.03.27 |
[C언어] CHAPTER 07 반복문 / 직각 삼각형 찾기, 피타고라스 수 찾기(중복 고려) (2) | 2021.03.27 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요