P14202

到达第K级台阶的方法数

难度 小学 数学入门 乘法原理 排列
讨论 统计 1通过 1提交 100%通过率 旧版界面
时间限制 1 秒 内存限制 128 MB

题目描述

给你一个非负整数 k。有一个无限长的台阶,最低一层编号为 0。

Alice 有一个整数 jump,一开始值为 0。Alice 从台阶 1 开始,可以使用任意次操作,目标是到达第 k 级台阶。假设 Alice 位于台阶 i,一次操作中,Alice 可以:

  • 向下走一级到 i - 1,但该操作不能连续使用,如果在台阶第 0 级也不能使用。
  • 向上走到台阶 i + 2^jump 处,然后 jump 变为 jump + 1。

请你返回 Alice 到达台阶 k 处的总方案数。

注意,Alice 可能到达台阶 k 处后,通过一些操作重新回到台阶 k 处,这视为不同的方案。

输入

一行,包含一个整数 k。

输出

输出一个整数,表示到达第 k 级台阶的方案数。

样例

样例 1
输入
0
输出
2
样例 2
输入
1
输出
4

提示

  • 0 <= k <= 10^9

样例解释 1

2 种到达台阶 0 的方案为:

  1. Alice 从台阶 1 开始,执行第一种操作,从台阶 1 向下走到台阶 0。
  2. Alice 从台阶 1 开始,执行第一种操作向下走到 0,再执行第二种操作向上走 1 级到台阶 1,再执行第一种操作向下走到 0。

样例解释 2

4 种到达台阶 1 的方案:

  1. Alice 从台阶 1 开始,已经到达台阶 1。
  2. Alice 从台阶 1 开始,向下走到 0,再向上走到 1。
  3. Alice 从台阶 1 开始,向上走到 2,再向下走到 1。
  4. Alice 从台阶 1 开始,向下到 0,向上到 1,向下到 0,向上到 2,再向下到 1。

来源

leetcode

Tab 缩进 · 提交后可在下方查看评测状态
请先登录后再提交