fzu 1700 数学公式

//郁闷的题目 郁闷的oj 公式题 xp上敲的时候不行 换了g++ 加了个0.5 过了说 

#include <iostream>
using namespace std;

int main()
{
    int a, d;
    long long i, s;
    while (scanf("%d %d %lld", &a, &d, &i) != EOF)
    {
        i = i%2009;
        if(i == 1)
        {
            s = 0;
        }
        else if(i==2)
        {
            s = d;
        }
        else if(i==3)
        {
            s = 5*d;
        }
        else if(i>=4)
        {
            s = (long long)(d*(((i-2)*(i-2)*(i-2)*(i-2)*(i-2)-(i-3)*(i-3)*(i-3)*(i-3)*(i-3))*1.0/120+((i-2)*(i-2)*(i-2)*(i-2)-(i-3)*(i-3)*(i-3)*(i-3))*1.0/8+((i-2)*(i-2)*(i-2)-(i-3)*(i-3)*(i-3))*17.0/24+(i-2)*(i-2)*15.0/8+(137.0/60)*(i-2)-(15.0/8)*((i-3)*(i-3))-(137.0/60)*(i-3))+0.5)%2009;
        }

        int result = ((a*i*(i+1)*(i+2)/6)%2009+s)%2009;
        printf("%d\n", result);
    }
    return 0;

}

 

//原来是这公式 = =

#include <iostream>
using namespace std;

int main()
{
    int a, d;
    unsigned long long i, s;
    while (scanf("%d %d %llu", &a, &d, &i) != EOF)
    {
        i = i % 2009;
        s = (unsigned long long)(d*(i*(i-1)*(i+1)*(i+2))/24)%2009;
        int result = ((a*i*(i+1)*(i+2)/6)%2009+s)%2009;
        printf("%d\n", result);
    }
    return 0;
}


posted on 2009-04-14 21:22  ZAFU_VA  阅读(145)  评论(0编辑  收藏  举报

导航