9461 : Padovan Sequence


何の問題ですか。


フィボナッチ数列の辺の形式の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));
    }
}
今はそんなのいらない

ハハハ..。


実は記号がない必要もありません.
#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