1003 - Sibonacci Numbers
Time Limit: 1s Memory Limit:
64MB
Submissions: 2130 Solved: 360
- Description
- As is known to all, the definition of Fibonacci Numbers is: f(1)=1 f(2)=1 f(n)=f(n-1)+f(n-2) (n>=3) Now Sempr found another Numbers, he named it "Sibonacci Numbers", the definition is below: f(x)=0 (x<0) f(x)=1
(0<=x<1) f(x)=f(x-1)+f(x-3.14) (x>=1) Your work is to tell me the result of f(x), is the answer is too large, divide it by 1000000007 and give me the remainder. Be careful the number x can be an integer or not. - Input
- In the first line there is an Integer T(0<T<10000) which means the number of test cases in the input file. Then followed T different lines, each contains a number x(-1000<x<1000).
- Output
- For each case of the input file, just output the result, one for each line.
- Sample Input
-
3 -1 0.667 3.15
- Sample Output
-
0 1 2
-
-
-
-
- #include<stdio.h>
- #define MAXN 100000
- int a[MAXN];
- int main()
- {
- int t,i,k;
- double x;
- for(i=0;i<314;i++)
- {
- a[i]=1;
- }
- for(i=314;i<MAXN;i++)
- {
- a[i]=a[i-100]+a[i-314];
- a[i]%=1000000007;
- }
- scanf("%d",&t);
- while(t--)
- {
- scanf("%lf",&x);
- if(x<0)
- {
- printf("0\n");
- continue;
- }
- x*=100;
- k=(int)(x+0.000001);
- printf("%d\n",a[k]);
- }
- return 0;
- }
-
时间: 2024-12-21 08:38:57