编辑代码

class Main {
	public static void main(String[] args) {
   
        //台阶
        System.out.println("走一个台阶:"+recursion(1));
        System.out.println("走两个台阶:"+recursion(2));
        System.out.println("走三个台阶:"+recursion(3));
        //阶乘
        System.out.print("阶乘:");
        System.out.println(factorial(10));
        System.out.print("斐波那契:");
        System.out.println(fibonacci(5));
        //回文
        char[] chars={'a','b','a','b','a'};
        System.out.println(palindByStep(chars)?"是回文数":"不是回文数");

	}
    //台阶
    public static int recursion(int stairCount){
        if (stairCount < 1){
            return 0;
        }
        if (stairCount ==1){
            return 1;
        }
        if (stairCount ==2){
            return 2;
        }
        int stepMethods = 0;
        int preStepMethods = 2;
        int prePreStepMethods = 1;
        int stairStepped = 3;
        for (;stairStepped<stairCount+1;stairStepped++){
            stepMethods = prePreStepMethods+preStepMethods;
            prePreStepMethods=preStepMethods;
            preStepMethods=stepMethods;
        }
        return stepMethods;
    }
    //阶乘
public static int fibonacci(int n) {
        int f1=1,f2=1,f;
        if (n<=2)return 1;
        int result = 0;
        for (int i =3;i<=n;i++){
            result = f1+f2;
            f1=f2;
            f2=result;
        }
        return result;
    }
    //斐波那契
public static int factorial(int n) {
        int result = 1;
        for (int i=1;i<=n;i++){
            result = result*i;
        }
        return result;
    }
    //回文
    public static boolean palindByStep(char[] chars) {
        int length = chars.length;
        boolean isPalindrome = true;

        if (length<=1){
            return true;
        }
        for (int i =0;i<length/2;i++){
            if (chars[i]!= chars[length-i-1]){
                isPalindrome=false;
                break;
            }
        }
        return isPalindrome;
    }
}