C语言编程练习25:sqrt log sin 函数
题目描述
小明的老师给小明布置了这样一道作业题,一个序列符合以下定义:

现问你这个序列的第n项是多少?
输入
输入包含多组测试数据。每组输入一个整数n(0<=n<=1000000),当输入-1时,输入结束。
输出
对于每组输入,输出第n项的值,结果请mod 1000000。
样例输入 Copy
0 -1
思路:题目已经给思路了,简单的递归而已,但是用函数递归我运行错误,也不是超时,不解。
也做过好多题了,总算是在这道题上回忆起了可以先把结果全部算出来存数组里面,直接根据n的值找数组下标,然后输出相应的值。
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
int main()
{
int n;
int f[1000005];
f[0] = 1;
for(int i=1;i<1000005;i++)
{
f[i]=(f[int(i-sqrt(i))]+f[int(log(i))]+f[int(i*sin(i)*sin(i))])%1000000;
}
while(1)
{
scanf("%d",&n);
if(n==-1)
{
break;
}
printf("%d\n",f[n]);
}
return 0;
}

浙公网安备 33010602011771号