有n级台阶,每一步可以走1级或2级,问一共有多少种走法
function getStairs(stair) { if(stair <= 0) { return0 } if(stair === 1) { return1 } if(stair === 2) { return2 } return getStairs(stair - 1) + getStairs(stair - 2) } conststair = parseInt(readline()) console.log(getStairs(stair))
function getCount(n) { let count = 1 for (let i = n - 1; i >= 1; i--) { if (i * 2 < n) { return count } if (i * 2 === n) { return count += 1 } count += i } return count }
//leetcode 70 climbStairs const readline = require('readline') const rl = readline.createInterface({ input: process.stdin, ouput: process.stdout }) let inArr = [] rl.on('line',line=>{ if(!line) return inArr.push(line.trim()) if(inArr.length === 1){ let n = +inArr[0] console.log(climbStairs(n)) } }) var climbStairs = function(n) { if(n<3)return n let f1=1, f2 =2 ,f, i=3 while(i++<=n){ f=f1+f2 f1=f2 f2=f } return f };
// 时间复杂度O(N),空间复杂度O(1) function climbingWays(n) { // 爬到n阶楼梯的方法个数 // 假设楼梯一次只能爬一级或者两级 if(n < 1) { return 0; } if(n == 1) { return 1; } if(n == 2) { return 2; } // 由于爬楼梯阶层只需要前两级阶层的个数,只需保存两个数就可以 var a = 1; var b = 2; var temp = 0; for(var i = 3; i <= n; i++) { temp = a + b; a = b; b = temp; } return temp; } const stair = parseInt(readline()) console.log(climbingWays(stair))
/** * @param {number} n * @return {number} */ var climbStairs = function(n) { const memo = [] memo[1] = 1 memo[2] = 2 for (let i =3; i <= n; i++) { memo[i] = memo[i - 2] + memo[i - 1] } return memo[n] };
if (n == 1) { cout << 1; return 0; } long before = 1, after = 2; for (int i = 3; i <= n; i++) { long temp = before + after; before = after; after = temp; } cout << after;
function main(n) { if(n == 1) return 1; if(n == 2) return 2; let left = 1; let right = 2; let sum = 0; for(let i = 3 ; i <= n ; i++) { sum = left + right; left = right; right = sum; } return sum; } while (line = readline()) { var n = parseInt(line); var res = main(n); print(res); }
#include<iostream> using namespace std; int main() { int n; scanf("%d",&n); int k[n+1]; k[0] = 1; k[1] = 1; for(int i = 2; i <= n; i++) { k[i] = k[i-1] + k[i-2]; } printf("%d",k[n]); return 0; }