4108:羚羊数量-Number Of Antelope
总时间限制: 1000ms 内存限制: 65536kB
描述
草原上有一种羚羊,假设它们出生时为0岁,那么经过3年的成长,当它们在3岁的时候会成年,并开始繁殖。每一对羚羊在3岁的那一年会产下两只小羚羊,并且这对成年羚羊结为永久的伴侣,在以后的每一年又生出两只小羚羊。

假定一对羚羊产下的两只小羚羊必定为一雄一雌,羚羊在3岁时必定会找到另外一只同年羚羊结为永久伴侣,并开始繁殖。此外,假定这种羚羊在50岁以内不会死去。

如果在第0年,草原上有一对0岁的羚羊,那么第n年末草原上有多少对羚羊?

例如,第1年和第2年,草原上有1对羚羊;第3年,由于这对羚羊成年了,它们会生下一对羚羊,因此第3年末草原上有2对羚羊。

输入
第一行是一个正整数m(1<=n<=15),表示共有m个问题。
下面m行,每行是一个数字n(0<=n<=40),表示第n年。
输出
总共m行,每行一个数字,表示相应的第n年末草原上有几对羚羊。
样例输入
3
1
3
4
样例输出
1
2
3
提示
结果不会超出int范围

问题链接:Bailian4108 羚羊数量-Number Of Antelope
问题简述:(略)
问题分析
    本题类似于菲波那契数列问题,关键是递推式,前几项需要自己算出来。递推式是f(n)=f(n-3)+f(n-1)。打表是好的做法,可以减少重复计算的次数。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C语言程序(打表)如下:

/* Bailian4108 羚羊数量-Number Of Antelope */#include <stdio.h>#define N 40
int a[N + 1];void init(int n)
{int i;a[0] = 1;a[1] = 1;a[2] = 1;for(i = 3; i <= n; i++)a[i] = a[i - 3] + a[i - 1];
}int main(void)
{init(N);int m, n;scanf("%d", &m);while(m--) {scanf("%d", &n);printf("%d\n", a[n]);}return 0;
}

AC的C语言程序(递归)如下:

/* Bailian4108 羚羊数量-Number Of Antelope */#include <stdio.h>int fib(int n)
{if (n == 0) return 1;else if (n == 1) return 1;else if (n == 2) return 1;else return fib(n - 3) + fib(n - 1);
}int main(void)
{int m, n;scanf("%d", &m);while (m--) {scanf("%d", &n);printf("%d\n", fib(n));}return 0;
}

AC的C语言程序(记忆化递归)如下:

/* Bailian4108 羚羊数量-Number Of Antelope */#include <stdio.h>
#include <string.h>#define N 40
int a[N + 1];int fib(int n)
{if (a[n]) return a[n];else if (n == 0 || n == 1 || n == 2) return a[n] = 1;else {if (a[n - 3] == 0)a[n - 3] = fib(n - 3);if (a[n - 1] == 0)a[n - 1] = fib(n - 1);return a[n - 3] + a[n - 1];}
}int main(void)
{memset(a, 0, sizeof a);int m, n;scanf("%d", &m);while (m--) {scanf("%d", &n);printf("%d\n", fib(n));}return 0;
}

Bailian4108 羚羊数量-Number Of Antelope【递推+打表+递归+记忆化递归】相关推荐

  1. Bailian4108 羚羊数量-Number Of Antelope【递推+打表】

    4108:羚羊数量-Number Of Antelope 总时间限制: 1000ms 内存限制: 65536kB 描述 草原上有一种羚羊,假设它们出生时为0岁,那么经过3年的成长,当它们在3岁的时候会 ...

  2. UVA10943 How do you add【递推打表】

    Larry is very bad at math - he usually uses a calculator, which worked well throughout college. Unfo ...

  3. HDU2018 母牛的故事【递推+记忆化递归】

    母牛的故事 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  4. Bailian1664 Placing apples【递推+记忆化递归】

    1664:Placing apples 总时间限制: 1000ms 内存限制: 65536kB 描述 We are going to place M same apples into N same p ...

  5. 组合数学 —— 组合数取模 —— 逆元与递推打表

    [逆元求法] 1.要求:p 是质数 2.时间复杂度:O(n) 3.求解  的步骤: 1)通过循环,预先算好所有小于 N 的阶乘(%p)的结果,存到数组 fac[] 中 (fac[i] = i!%p) ...

  6. HDU2501 Tiling_easy version【递推+打表】

    Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

  7. POJ1664 放苹果【递推+记忆化递归】

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35209   Accepted: 21792 Description ...

  8. NYOJ 1076 方案数量(公式 或 递推)

    方案数量 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给出一个N*M的棋盘,左下角坐标是(0,0),右上角坐标是(N,M),规定每次只能向上或者向右走,问从左下角走到 ...

  9. Bailian3258 兔子产子【递推+打表】

    3258:兔子产子 总时间限制: 1000ms 内存限制: 65536kB 描述 从前有一对长寿兔子,它们每一个月生一对兔子,新生的小兔子两个月就长大了,在第二个月的月底开始生它们的下一代小兔子,这样 ...

  10. luogu P2216 [HAOI2007]理想的正方形 递推+ST表

    题意:有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 数据规模: (1)矩阵中的所有数都不超过1,000,000,000 (2)20% ...

最新文章

  1. linux cpu 超频,Linux 调整 cstate 实现cpu超频
  2. java本地方法封装库_JNA-Java本地方法封装库
  3. “AlphaGo之父”获最新一届ACM计算奖
  4. boost::tuple用法的测试程序
  5. hadoop学习2 记录配置hadoop环境的那些坑
  6. 和宝塔可以同时安装吗_服用钙拮抗剂可以同时补钙吗
  7. 机器人操作系统——ROS,Robot Operating System
  8. Android 内存监测工具 DDMS -- Heap
  9. 单片机STM8S测量电压电路_50个单片机晶振问题及解决方法小结
  10. 解决2020R2,2022R1等版本的SCDM无法编辑草图尺寸的问题
  11. 体验谷歌菜市场镜像版
  12. Python数据字典处理Excel,并统计总数,画出饼图
  13. 数字信号与模拟信号的区别是什么?
  14. 建立了一个博客园创业者QQ群
  15. 一个屌丝程序猿的人生(二十六)
  16. CHtmlView指定IE内核
  17. 波束成形算法之波束宽度
  18. 快速上手Luminati的三个使用方法
  19. 手把手教你开发photoshop面板插件(附demo和工具)
  20. 使用x32dbg破解VB6编译的软件时间限制

热门文章

  1. $.extend中探索深拷贝和浅拷贝
  2. 我的世界玩服务器虚拟内存高崩,服务端崩溃 - 崩溃解答 - MC百科社群 - MC百科|最大的Minecraft中文MOD百科...
  3. 【论文翻译】Many-Class Few-Shot Learning on Multi-Granularity Class Hierarchy
  4. 免费在线绘制CircRNA吸附miRNA圈图
  5. STC8A8K64D4(51系列单片机)printf打印数据异常的问题
  6. 关于Android Handler同步屏障那些事
  7. python浙江医院抢号_医院挂号难?抢号秘籍看这里!
  8. 投票动态代理proxy案例(java)
  9. php判断某天星期几,php怎么判断指定日期是星期几?
  10. 基于JAVA图书商城购物系统的设计与实现