백준 2193

Hyeonu_J·2022년 3월 16일
0
post-custom-banner

https://www.acmicpc.net/problem/2193

input - 1 2 3 4 5 6 7 8 9 10 ...
output - 1 1 2 3 5 8 13 21 34 55 ...
피보나치 수열인 걸 알고 코딩했는데 실패했다고 뜬다..!

실패한 코드 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int yeechinsu(int N) {
	if (N == 1) return 1;
	if (N == 2) return 1;
	int a = 1, b = 1, c;
	for (int i = 2; i < N; i++) {
		c = a + b;
		a = b;
		b = c;
	}
	return b;
}

int main() {
	int N;
	scanf("%d", &N);
	printf("%d", yeechinsu(N));
}

출력하는 수가 int 자료형 크기에 맞지 않아서 실패했다.
long long 을 붙여서 해결했다.

성공한 코드 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

unsigned long long int yeechinsu(int N) {
	if (N == 1) return 1;
	if (N == 2) return 1;
	unsigned long long int a = 1, b = 1, c=1;
	for (int i = 2; i < N; i++) {
		c = a + b;
		a = b;
		b = c;
	}
	return c;
}

int main() {
	int N;
	scanf("%d", &N);
	printf("%llu", yeechinsu(N));
}
profile
흔한 컴공러 / 3학년
post-custom-banner

0개의 댓글