2010网易有道难题练习赛-C-求解答

这题没想到高效的解法。求解答。

    菲波那切数列可以用下列的式子表示:
    f(1)=1
    f(2)=1
    f(n)=f(n-1)+f(n-2) (n>=3)

    现在我们根据这个规则定义另一种数列 命名为"辛波那切数列", 它是这样定义的:
    s(x)=0 (x<0)
    s(x)=1 (0<=x<1)
    s(x)=s(x-1)+s(x-3.14) (x>=1)

    现在需要计算出s(x) MOD 1000000007的值。
输入
    第一行有一个正整数T表示有T组测试数据。
    接下来T行,每行包含一个数x。
    其中 T<=10000, -1000.0<=x<=1000.0
输出
    有T行,依次输出每组数据的结果。
样例输入

    3
    -1
    0.667
    3.15

样例输出

    0
    1
    2

看来还是C++圈子的算法高手多,基本比赛的都是C++人士。

你可能感兴趣的:(C++,c,算法,C#,F#)