有n步台阶,一次只能上1步或2步,共有多少种走法


有n步台阶,一次只能上1步或2步,共有多少种走法

 

循环迭代:

 

 1 public class steps {
 2         public int js(int n) {
 3             int one = 2; //初始化为第三级台阶最后跨一步的走法
 4             int two = 1; //初始化为第三级台阶最后跨两步(一下迈过去两个台阶)的走法
 5             int sum = 0; //总走法
 6             for (int i = 3; i <= n; i++){
 7                 sum=one+two; //当i=3时,sum为最后跨一步one:到2级台阶的走法 + 最后跨两步two:到1级台阶的走法
 8                 two=one; // 3级台阶最后跨一步的走法赋值给two,第4级台阶最后跨两步走法就是3级台阶最后跨一步的走法,即到2级台阶的走法
 9                 one=sum; // 将3级台阶的总走法赋值给one,第4级台阶最后跨一步的走法就是3级台阶的总走法
10             }
11             return sum;
12         }
13     public static void main(String[] args) {
14             steps a=new steps();
15             System.out.println(a.js(10));
16     }
17 }

 

 
 
第三个台阶,跨两步即(跨两个台阶)
  当n=1时, 一步
  当n=2时,
    (1)一步一步
    (2)直接两步(跨两台阶)到第2个台阶
  当n=3时,
    (1)跨一步:2 ->3
        先到2级台阶f(2),再一步到3级台阶
    (2)跨两步 :1->3
        先到1级台阶f(1),再跨两步到3级台阶
 

 

或者直接按照斐波那契数列;按照规律直接编写

1 2 3 5 8
 
 

 1 public class steps {
 2         public int js(int n) {
 3             int one = 1;
 4             int two = 2;
 5             int sum = 0;
 6             for (int i = 3; i <= n; i++){
 7                 sum=one+two;
 8                 one=two;
 9                 two=sum;
10             }
11             return sum;
12         }
13     public static void main(String[] args) {
14             steps a=new steps();
15             System.out.println(a.js(10));
16     }
17 }

 

  

 
 

 
 
 
 
 
 
 
 
 

原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/270669.html

(0)
上一篇 2022年6月29日 04:08
下一篇 2022年6月29日 04:08

相关推荐

发表回复

登录后才能评论