组合数学Fibonacci

例3.4.1   上楼梯问题)某人欲登上n级楼梯,若每次只能跨一级或两级,问他从地面上到第n级楼梯,共有多少种不同的方法?

)设上到第n级楼梯的方法数为an。分类统计,那么,第一步有两种可能:

(1) 跨一级,则余下的n1级有an1种上法;

(2) 跨两级,则余下的n2级有an2种上法。

由加法原理 

F1

F2

F3

F4

F5

F6

 

1

1

2

3

5

8

……

 

a1

a2

a3

a4

A5

 

 import math

 class Solution(object):
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
n = n+1
if n <= 1:
return 1
if n == 2:
return 2
return int(1/math.sqrt(5) * (((1+math.sqrt(5))/2)**n-((1-math.sqrt(5))/2)**n))

leetcode70 爬楼梯 Python的更多相关文章

  1. leetcode-70.爬楼梯

    leetcode-70.爬楼梯 Points 斐波那契 动态规划 题意 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给 ...

  2. [Swift]LeetCode70. 爬楼梯 | Climbing Stairs

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  3. leetCode70.爬楼梯

    假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: 有两 ...

  4. LeetCode70——爬楼梯

    题目描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解 ...

  5. Java实现 LeetCode70 爬楼梯

    70. 爬楼梯 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: ...

  6. 手撕代码:leetcode70爬楼梯

    装载于:https://blog.csdn.net/qq_35091252/article/details/90576779 题目描述 假设你正在爬楼梯.需要n阶你才能到达楼顶. 每次你可以爬1或2个 ...

  7. 【leetcode70】【动态规划】 爬楼梯

    (1 pass 一维动态规划) 爬楼梯(easy) 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数 ...

  8. Leetcode 70.爬楼梯 By Python

    假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: 有两 ...

  9. 爬楼梯问题 leetcode70

    假设你正在爬楼梯,需要n阶你才能到达楼顶,n是正整数 每次你可以爬1或2个台阶,有多少种不同的方法可以爬到楼顶 当n=1时,steps=1 当n=2时,1+1,2 steps=2 当n=3时,1+1+ ...

随机推荐

  1. IDEA常用快捷键总结

    Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱,想排出个理想的榜单还真是困难.以前也整理过Intellij的快捷键,这次就按 ...

  2. 2018—自学Selenium+Python 笔记(一)

    在开始学习前,先唠几句: 身为一个开发人员,为何想要转测试..很多人不解. 但我觉得这并没有什么不可,测试人员是质量的把控者: 要出一个让客户满意的产品,单纯靠开发自测,是不够的..相信其中缘由大家都 ...

  3. mysql新增用户并开启远程连接

    之前使用mysql一直使用root来连接登录数据库,现在想使用新的用户名来连接数据库,碰到数据连接不上的情况. 把这些记录下来,以备后用 1.首先,创建用户 CREATE USER 'xiazhenx ...

  4. Linux 环境下安装RabbitMQ的步骤

    #下载erlangcd /usr/local/devwget wget http://erlang.org/download/otp_src_17.5.tar.gz # 解压tar -xzvf otp ...

  5. nginx 支持ipv6设置

    为了使nginx支持ipv6 访问需要做以下配置: 1.找到nginx的安装路径: 使用命令:whereis nginx 查看nginx安装路径: 进入nginx执行文件目录: 先用./nginx - ...

  6. js bind0

    $(function(){ $("#ul").on('click','li',function(){ if(!$(this).a $(function(){ $("#ul ...

  7. C#创建、读写、增加、删除XML操作

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  8. 处理文件中的" M-BM- "特殊符号

    有时为了方便,会在Excel中进行代码拼装,比如说是建表SQL语句,但是在复制的代码过程中可能会带入不可见字符,造成代码无法运行. 本次代码中就需要了不可见的" M-BM- " 问 ...

  9. 开始Python学习

    主要结合ArcGIS进行空间数据处理 Python最讨厌的就是版本问题了 ArcGIS 10.5安装的时候已经安装了python2.7.13,但后来又安装了python3.6.1. 环境变量的设置: ...

  10. [LeetCode&Python] Problem 27. Remove Element

    Given an array nums and a value val, remove all instances of that value in-placeand return the new l ...