-
백준 2193_이친수알고리즘/백준 2020. 8. 17. 10:46
https://www.acmicpc.net/problem/2193
손으로 끄적거리다보면 피보나치수열과 비슷함을 알 수 있다.
1 1 2 3 5 7 ...
#include <stdio.h> int main(){ int i,n; int result=1, a=1, b=1; scanf("%d",&n); for(i=2;i<n;i++){ result=a+b; b=a; a=result; } printf("%d\n", result); return 0; }
하지만, 위와 같이 제출하면 "틀렸습니다." 가 나오게된다.
문제에서 준 범위값 1<=N<=90에서 N이 47이되면 int형의 최대값을 넘어가, 오답이 되게된다.
따라서
#include <stdio.h> int main(){ int i,n; long result=1, a=1, b=1; //int -> long scanf("%d",&n); for(i=2;i<n;i++){ result=a+b; b=a; a=result; } printf("%ld\n", result); return 0; }
로 수정하면된다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1065_한수 (0) 2020.10.09 백준 1110_더하기 사이클 (0) 2020.10.09 백준 1463_1로 만들기 (0) 2020.08.17 Dynamic Programming (0) 2020.08.09 백준1260_DFS와 BFS (0) 2020.06.03