HDU2041 超级楼梯
问题链接:HDU2041 超级楼梯。基础训练题,用C语言编写程序。
问题简述:参见上述链接。
问题分析:这是一个递推的问题。站在楼梯的第n级想一下,前一步是从哪里来的,问题就清楚了。
由于每次只能上一级或两级,那么f(n)=f(n-2)+f(n-1)。这不就是一个菲波拉契数列吗?就是一个递推问题?
可是,开始时候是站在第1级台阶上,所以数列的开始几项会有所不同。
f(1)=0,因为开始就站在第1级台阶上;
f(2)=1,只能从第1级台阶上1级;
f(3)=2,只能从第1级台阶上2级,或只能从第2级台阶上1级;
f(n)=f(n-2)+f(n-1),n>3。
得到上述递推关系后,便写了一个函数来计算f(n),程序如下:
unsigned long long fib(int n)
{if(n == 1)return 0;else if(n == 2)return 1;else if(n == 3)return 2;elsereturn fib(n-2) + fib(n-1);
}
一用这个函数来解决问题,时间上就爆了。
先打表,问题就解决了。
程序说明:(略)
AC的C语言程序如下:
/* HDU2041 超级楼梯 */#include <stdio.h>#define MAXN 40typedef unsigned long long ULL;ULL fn[MAXN+1];void setfn()
{int i;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, m;// 先打表setfn();scanf("%d", &n);while(n--) {scanf("%d", &m);printf("%lld\n", fn[m]);}return 0;
}
转载于:https://www.cnblogs.com/tigerisland/p/7564648.html
HDU2041 超级楼梯相关推荐
- HDU2041 超级楼梯【递推+水题】
超级楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 整数实例hdu2041(超级楼梯)
PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! Problem Description 有一楼梯共M级,刚开始时你在第一级, ...
- HDU2041超级楼梯
列出前几个数据,你会发现结果跟菲波纳茨数列有点像 #include <iostream> using namespace std; int main() { int n,m; int a[ ...
- 超级楼梯[HDU2041]
超级楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- hdu 2041:超级楼梯(水题,递归)
超级楼梯Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...
- 航电 2041 超级楼梯
超级楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 超级楼梯HDOJ2041
超级楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 【qduoj】【超级楼梯进阶版】
题干: 描述 N级阶梯,人可以一步走一级,也可以一步走两级,求人从阶梯底端走到顶端可以有多少种不同的走法. 输入 一个整数n,代表台阶的阶数. 输出 求人从阶梯底端走到顶端可以有多少种不同的走法,输出 ...
- 超级楼梯HDU2041
由递推关系,到n-1时有一种走法,n-2时有2种走法,所以 An=An-1+2*An-2 1 #include<stdio.h> 2 main() 3 { 4 int n,m,i; 5 d ...
最新文章
- 思科3750开启策略路由功能
- UITableview 多行删除
- hive mysql 删除表_Hive-删除表(drop、truncate的区别)
- oracle sql 艺术,Oracle PL/SQL 从if 到 then的“艺术鉴赏”
- 常用正则表达 (转)
- sass部分知识小结
- 无监督学习 k-means_无监督学习-第2部分
- Yann LeCun, Geoffrey E. Hinton, and Yoshua Bengio
- 平衡二叉树的自顶向下递归和自底向上递归
- Python开发第一篇 基础篇(下)
- MFC开发IM-第二十六篇、vs2008添加库文件
- dll导出类比较好的方式
- 分布式系统必读中文版-分布式系统模式-分享
- 金仓数据库KingbaseES之libpq通过服务名连接数据库
- Java的指针碰撞简介
- 如何快速搭建自己的github.io博客
- VC实现EXCEL转换为CSV格式
- nginx整合fastdfs出现2个master进程没有worker进程的原因以及解决方法
- 渗透测试-安全岗位面试题总结(含答案)
- office 2013 已停止工作;word excel 打开任何文件
热门文章
- es5.4.0-CentOS-6.5-x86_64安装文档
- github创建maven项目过程
- 恢复出厂设置后itms注册失败_手机恢复出厂设置后,与新手机的区别已被确认,望大家相互转告!...
- Hadoop平台优化综述(一)
- Android编程之ActivityManager: Segmentation fault
- 启动数据库时提示ORA-03113: 通信通道的文件结尾解决方法
- 聊聊 scala 的模式匹配 1
- mac flutter 开发环境配置 从0到1 流程
- 一个 Safari 的 new Date() bug
- 关于编写过程中进制之间的转换