题目描述
小明的老师给小明布置了这样一道作业题,一个序列符合以下定义:
现问你这个序列的第n项是多少?
输入
输入包含多组测试数据。每组输入一个整数n(0<=n<=1000000),当输入-1时,输入结束。
输出
对于每组输入,输出第n项的值,结果请mod 1000000。
#include<stdio.h>
#include<math.h>
const int mod = 1000000;
int x[mod + 1];
int main()
{ int n,i;
x[0]=1;
for (i=1;i<mod+1;i++)
x[i] = (x[(int)floor(i - sqrt(i))] + x[(int)floor(log(i))] + x[(int)floor(i * sin(i) * sin(i))]) % mod;
while (scanf("%d", &n), n != -1)
printf("%d\n", x[n]);
}
这题一开始我运行不出来 后来根据网上答案把mod=1000000编入整个程序中,问题才迎刃而解这个可能因为1000000数字太大超出计算机计算范围的缘故吧。这个还需要去多多研究一下为什么当mod为1000000时我无法输入 CMD会卡在计算x[i]上