问题链接:HDU2044 一只小蜜蜂...。基础训练题,用C语言编写程序。

问题简述:参见上述链接。

问题分析:这个问题非常类似于:HDU2041 超级楼梯,略微有些不同。

站在第n个蜂房想一下,前一步是从哪里来的,问题就清楚了。

看图可知,由于蜜蜂每次只能从前1个蜂房前2个蜂房过来,那么f(n)=f(n-2)+f(n-1)。这部就是一个菲波拉契数列吗?就是一个递推问题?

可是,开始时候,蜜蜂是在第1个蜂房,所以数列的开始几项会有所不同。

f(1)=0,因为蜜蜂开始在第1个蜂房;

f(2)=1,蜜蜂只能从第1个蜂房来到第2个蜂房;

f(3)=2,蜜蜂可以从第1个蜂房过来,也可以从第2个蜂房过来;

f(n)=f(n-2)+f(n-1),n>3。

有了以上的递推式,一切几乎就解决了。

还需要考虑的一点是,蜜蜂从a蜂房到b蜂房的各种可能路径,相当于从第1蜂房到第b-a+1蜂房。

另外一点是,还是先打表吧,以防万一。

程序说明:(略)。

AC的C语言程序如下:

/* HDU2044 一只小蜜蜂... */#include <stdio.h>#define MAXN 50typedef unsigned long long ULL;ULL fn[MAXN+1];void setfn()
{int i;fn[0] = 0;fn[1] = 0;fn[2] = 1;fn[3] = 2;for(i=4; i<=MAXN; i++)fn[i] = fn[i-2] + fn[i-1];
}int main(void)
{int n, a, b;// 先打表(以防万一测试集合大)setfn();scanf("%d", &n);while(n--) {// 读入a和bscanf("%d%d", &a, &b);// 输出结果printf("%lld\n", fn[b - a + 1]);}return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7564645.html

HDU2044 一只小蜜蜂...相关推荐

  1. HDU2044 一只小蜜蜂...【递推】

    一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  2. HDU2044 一只小蜜蜂…(简单递推)

    一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  3. HDU2044一只小蜜蜂(递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044 这种题个人觉得就是找规律,把数据多列出来几个,你会发现得到的数列跟Fibonacci数列十分相像 ...

  4. 一只小蜜蜂... hdu2044

    题源:一只小蜜蜂- hdu2044 题目: 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Input 输入数据的 ...

  5. 2018暑假集训---递推递归----一只小蜜蜂hdu2044

    一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  6. 函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事

    题目:一只小蜜蜂 递归做法: #include<cstdio> #include<iostream> #include<stdlib.h> #include< ...

  7. K - 一只小蜜蜂...

    一只小蜜蜂- 题目描述 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Iutput 输入数据的第一行是一个整数N ...

  8. HDU - 2044一只小蜜蜂 一道递推题

    一只小蜜蜂 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> ...

  9. HDUOJ 2044一只小蜜蜂...

    HDUOJ 2044一只小蜜蜂... Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构 ...

  10. 一只小蜜蜂,一万天纪念日,杨辉三角,洗牌

    一只小蜜蜂 #include<bits/stdc++.h> using namespace std; int main() {int a,b,x;long long n[50];n[0]= ...

最新文章

  1. 牛客华为机试第8题python
  2. filter java web_java web filter 之一 基础实现
  3. Android中调用另一个Activity并返回结果-以模拟选择头像功能为例
  4. 一些有意思的算法代码[转载]
  5. Lightbox JS v2.0
  6. sql 2008 使用output避免数据修改后的二次查询
  7. 怎样的中奖算法能让人信服
  8. 没有android:padding属性,android pading的四个值,为负值时,什么情况下,有效啊
  9. Struts2中的ModelDriven机制及其运用
  10. 回溯法解决八皇后问题
  11. Windows mobile美化之-短信界面美化修改~
  12. python3 shell脚本开发_python3 subprogress 模块的使用 代替shell编写脚本
  13. 文章翻译软件-批量免费翻译软件支持各大翻译接口
  14. 中华流传十大吉祥图解
  15. linux中wine文件夹在哪,linux下wine的使用
  16. windows连接虚拟专用网络的方法教程
  17. LaTeX 公式(转自)Iowa_Battleship 神犇
  18. Email - Boss's concerns
  19. 何恺明大神巨作:Faster R-CNN 论文笔记
  20. 为什么app会被常常攻击?如何预防攻击?

热门文章

  1. Xamarin.Android开发实践(六)
  2. c++ 类的定义和使用
  3. Beanutils基本用法
  4. Redis通过IO进行序列化+反序列化
  5. Spring 通过XML配置装配Bean
  6. 一文搞懂Spring Cloud Zuul
  7. CF891E Lust 生成函数
  8. [SimplePlayer] 6. 音频同步
  9. Perl复制、移动、重命名文件/目录
  10. 利用unittest+ddt进行接口测试(二):使用yaml文件管理测试数据