1056 - sqrt log sin 函数
小明的老师给小明布置了这样一道作业题,一个序列符合以下定义:

现问你这个序列的第n项是多少?
Input
输入包含多组测试数据。每组输入一个整数n(0<=n<=1000000),当输入-1时,输入结束。
Output
对于每组输入,输出第n项的值,结果请mod 1000000。
Examples
Input
0 -1
Output
1
Solution C
#include<stdio.h> #include<math.h> int a[1000001]; int main() { int n; double i,x,y,z; a[0]=1; for(i=1;i<=1000000;i++) { x=i-sqrt(i); y=log(i); z=i*sin(i)*sin(i); a[(int)i]=(a[(int)x]+a[(int)y]+a[(int)z])%1000000; } while(scanf("%d",&n)!=EOF,n!=-1) printf("%d\n",a[n]); return 0; }
Solution C++
#include<stdio.h> #include<math.h> int a[1000001]; int main() { int n; double i,x,y,z; a[0]=1; for(i=1;i<=1000000;i++) { x=i-sqrt(i); y=log(i); z=i*sin(i)*sin(i); a[(int)i]=(a[(int)x]+a[(int)y]+a[(int)z])%1000000; } while(scanf("%d",&n)!=EOF,n!=-1) printf("%d\n",a[n]); return 0; }