Untitled

 avatar
unknown
plain_text
5 months ago
1.1 kB
2
Indexable
//13690 - Bad Fibonacci's soup
#include <stdio.h>
#include <stdlib.h>
int f(int, int, int, int, int);
int g(int, int, int, int, int);
int ansf[105] = {0}, ansg[105] = {0};
int main(void)
{
    int a, b, c, d, n;

    scanf("%d %d %d %d %d", &a, &b, &c, &d, &n);

    printf("%d %d\n", f(a, b, c, d, n), g(a, b, c, d, n));
    return 0;
}

int f(int a, int b, int c, int d, int n)
{
    if(n == 0){
        return a;//直接return 就可以了
    }

    if(n == 1){
        return b;//直接return 就可以了
    }

    if(n%3 == 0)
        ansf[n] = f(a, b, c, d, n-1) + g(a, b, c, d, f(a, b, c, d, (n/3)%n));

    else
        ansf[n] = f(a, b, c, d, n-1) + g(a, b, c, d, n-2);

    return ansf[n];

}
int g(int a, int b, int c, int d, int n)
{
    if(n == 0){
        return c;//直接return 就可以了
    }

    if(n == 1){
        return d;//直接return 就可以了
    }


    if(n%5 == 0)
        ansg[n] = g(a, b, c, d, n-1) + f(a, b, c, d, g(a, b, c, d, (n/5)%n));

    else
        ansg[n] = g(a, b, c, d, n-1) + f(a, b, c, d, n-2);

    return ansg[n];
}


Editor is loading...
Leave a Comment