import org.junit.jupiter.api.Test;publicclasstestStep2{//实现符(n):求n步台阶,一共有几种走法public int loop(int n){if(n <1){thrownewIllegalArgumentException(n +"不能小于1");}if(n ==1|| n ==2){return n;}
int two =2;//初始化走到第二级台阶有2种走法
int one =1;//初始化走到第一级台阶有1种走法
int sum =0;for(int i =3; i <= n; i++){//比如i=3: 总步数sum=如果最后跨2步那么还有一级可走(即one)+如果最后跨1步那么还有两级可走(即two)//同理:i=4:总步数sum=如果最后跨2步那么还有两级可走(即one=i是3的时候的two)+如果最后跨1步那么还有三级可走(即two=i是3的时候的sum)//所以有以下步骤:
sum=one+two;
one=two;
two=sum;}return sum;}
@Test
publicvoidtest(){
long start = System.currentTimeMillis();//System.out.println(f(0));
System.out.println(loop(1));
System.out.println(loop(2));
System.out.println(loop(3));
System.out.println(loop(4));
System.out.println("台阶为40时一共 "+loop(430)+" 种走法");
long end = System.currentTimeMillis();//毫秒
long time = end - start;
System.out.println("总运行时间:"+time+" 毫秒");}}