有n级台阶,每一步可以走1级或2级,问一共有多少种走法
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
}; 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))
// 时间复杂度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;
}