主题:NOIP2005第四大题最后一题,怎么解
cqhq2008
[专家分:10] 发布于 2006-09-25 10:34:00
NOIP2005第四大题最后一题,输入2005后,程序递归调用我的电脑怎么始终没有结果,此题应该怎么求解呢?谢谢!
回复列表 (共7个回复)
沙发
maxumi [专家分:2200] 发布于 2006-09-26 08:01:00
你说的是初赛的那道题吧, 放心, 那道题出解需要N亿年, 但是它是可以出解的, 只要你有耐心.....................- -b
板凳
cqhq2008 [专家分:10] 发布于 2006-09-26 14:19:00
它是个递归调用的,就是我的始终没有算出结果来,但是我看了答案的为31就是很纳闷,不知道怎么得出来?
3 楼
cqhq2008 [专家分:10] 发布于 2006-09-26 14:27:00
4. #include <stdio.h>
long g(long k) {
if (k <= 1) return k;
return (2002 * g(k - 1) + 2003 * g(k - 2)) % 2005;
}
int main() {
long n;
scanf("%ld", &n);
printf("%ld\n", g(n));
return 0;}
输入:2005
输出:
4 楼
boxertony [专家分:23030] 发布于 2006-09-27 21:41:00
这题不能用递归实现,太慢。用循环即可,很快的
5 楼
cqhq2008 [专家分:10] 发布于 2006-09-28 09:51:00
他本来的题目就是这样的,怎么解呢!
6 楼
hs3180 [专家分:530] 发布于 2006-10-07 13:24:00
是道数论题,想学的话自己找本书去
7 楼
cqhq2008 [专家分:10] 发布于 2006-10-07 16:26:00
看什么书呢,指点指点吧,谢谢!
我来回复