9461 : Padovan Sequence

네르기·2021년 8월 17일
0

알고리즘

목록 보기
23/76

어떤 문제인가?

피보나치 수열 변형식의 N번째 값을 구하는 문제

괜히 쫄았다

이 문제 자체는 원래 1주일 전에 다 푼 상태였는데, 100번째 수열 값이 unsigned long long을 초과한다고 착각한 바람에 큰 수를 따로 만들어서 표현해야 할 지 고민하고 있던 문제였다.

#include <stdio.h>

unsigned long long P[100] = {1,1,1};

unsigned long long p(int N) {
    if(N<=2) return P[N];
    if(!P[N]) P[N]=p(N-2)+p(N-3);
    return P[N];
}

int main() {
    int N,T,i=0;
    scanf("%d",&T);
    for(;i<T;i++) {
        scanf("%d",&N);
        printf("%llu\n",p(N-1));
    }
}

이제는 그런거 필요 없으니까 됐다.

ㅋㅋㅋ...

사실 unsigned도 필요 없었다.

#include <stdio.h>

main(T, n, i) { 
	for (scanf("%d", &T); T; --T) { 
	long long a = 1, b = 1, c = 1, d = 1; 
	for (scanf("%d", &n); n > 3; --n) {
		d = a + b; a = b; b = c; c = d;
	}
	printf("%lld\n", d); } 
}

shrimp1998님 코드
-> https://www.acmicpc.net/source/21001528

profile
프로그래머와 애니메이터가 되고파

0개의 댓글

관련 채용 정보