本文主要是介绍CCF NOI100003 上楼梯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题链接:CCF NOI100003 上楼梯。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
楼梯有N级台阶,上楼可以一步上一级台阶,也可以一步上两级台阶。编一程序,计算共有多少种不同的走法。
输入
一行,一个整数n(1 <= n <= 30),表示台阶的级数。
输出
一个整数,走法的种数。
样例输入
3
样例输出
3
方案1:走三次,每次一步
方案2:先走一级,再走两级
方案3:先走两级,再走一次
数据范围限制
问题分析
这是一个递推计算问题,关键是找出递推式。
参见参考链接。
程序说明
(略)
要点详解
- 尽量用函数封装功能函数。
- 递推问题的关键是递推式。
参考链接:HDU2041 超级楼梯。
100分通过的C语言程序:
#include <stdio.h>typedef unsigned long long ULL;ULL stairs(int n)
{ULL f1=1, f2=2, temp;if(n == 0)return 0;else if(n == 1)return 1;else if(n == 2)return 2;for(int i=3; i<=n; i++) {temp = f1 + f2;f1 = f2;f2 = temp;}return f2;
}int main(void)
{int n;scanf("%d", &n);printf("%lld\n", stairs(n));return 0;
}
这篇关于CCF NOI100003 上楼梯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!