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;
}
}