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;
}

 

posted @ 2021-01-24 11:05  FantasticDoulbeFish  阅读(283)  评论(0编辑  收藏  举报