回 帖 发 新 帖 刷新版面

主题:NOIP2005第四大题最后一题,怎么解

NOIP2005第四大题最后一题,输入2005后,程序递归调用我的电脑怎么始终没有结果,此题应该怎么求解呢?谢谢!

回复列表 (共7个回复)

沙发

你说的是初赛的那道题吧, 放心, 那道题出解需要N亿年, 但是它是可以出解的, 只要你有耐心.....................- -b

板凳

它是个递归调用的,就是我的始终没有算出结果来,但是我看了答案的为31就是很纳闷,不知道怎么得出来?

3 楼

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 楼

这题不能用递归实现,太慢。用循环即可,很快的

5 楼

他本来的题目就是这样的,怎么解呢!

6 楼

是道数论题,想学的话自己找本书去

7 楼

看什么书呢,指点指点吧,谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册