剑指OFFER之跳台阶(九度OJ1388)
时间:2022-04-22
本文章向大家介绍剑指OFFER之跳台阶(九度OJ1388),主要内容包括题目描述:、输入:、输出:、样例输入:、样例输出:、题目分析:、代码、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
输出:
对应每个测试案例,
输出该青蛙跳上一个n级的台阶总共有多少种跳法。
样例输入:
5
样例输出:
8
题目分析:
这道题很明显正向分析是不行的,也就是说,最后面的一个台阶,要依赖于前面台阶的。所以,最后一个台阶的方法数目可以由前面计算出来。那么,仔细想一下,一个青蛙只能跳1-2步,也就是说,最后一个台阶肯定是由它的前一个台阶或者前两个台阶上去的(假设这个时候台阶数目很长)。那么很显然,到达最后一个台阶的方法数目等于前一个台阶的方法数目加上前两个台阶的方法数目,到这里我们发现这是一个很典型的斐波那契数列。问题就好解决了,从前一道题的思路上看,要接的两个问题: 1 不要超时 2 注意数据的格式,long long 输出时使用%lld
代码
#include <stdio.h>
long long stair[71];
void getStair(void);
int main(){
int n;
getStair();
while(scanf("%d",&n) != EOF && n>=1 && n <= 70){
printf("%lldn",stair[n]);
}
return 0;
}
void getStair(void){
int i;
stair[0] = 1;
stair[1] = 1;
for(i=2;i<71;i++){
stair[i] = stair[i-1]+stair[i-2];
}
}
/**************************************************************
Problem: 1388
User: xhalo
Language: C
Result: Accepted
Time:0 ms
Memory:916 kb
****************************************************************/
- 零基础学编程041:欧拉公式的几何意义
- 零基础学编程040:在Windows上安装Python库的正确姿势
- c++/c 获取cpp文件行号跟文件名
- 零基础学编程042:画函数图像
- C-SATS工程副总裁教你如何用TensorFlow分类图像 part2
- C++11 Lambda表达汇总总结
- TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
- C++虚析构函数解析
- C-SATS工程副总裁教你如何用TensorFlow分类图像 part1
- 帝国cms文章页调用当前文章URL如何操作?
- dedecms文章页调用地址(当前文章URL)如何操作?
- 饭团开通一周,3人学会了比特币操作
- Sample K算法
- C#读取“我的文档”等特殊系统路径及环境变量
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【LeetCode之C#解法】 移动零、爬楼梯
- jQuery框架概述
- 久等了!Docker容器常用命令
- CentOS7下利用Ambari搭建HDP大数据平台
- 聊聊java中的哪些Map:(七)ConcurrentHashMap的size方法的一致性分析
- 关于ConcurrentHashMap的key和value不能为null的深层次原因
- How does InnoDB behave without a Primary Key(11.InnoDB在没用主键情况下的行为)
- 输入示例,自动生成代码:TensorFlow官方工具TF-Coder已开源
- 聊聊java8中的@sun.misc.Contended与伪共享
- InnoDB Tidbit:The doublewrite buffer wastes 32 pages (512 KiB) (12.双写缓冲区会导致512KB的浪费)
- 10 | Tornado源码分析:Gen 对象(上)
- springboot使用spring-cloud-starter-alibaba-sentinel导致响应变成xml格式
- 内网安全攻防之内网渗透测试基础
- CMake脚本中如何修改XCode工程属性?
- 数值微分|有限差分法的误差分析