class Main {
public static void main(String[] args) {
System.out.println("走一个台阶:"+calStepMethods(1));
System.out.println("走两个台阶:"+calStepMethods(2));
System.out.println("走三个台阶:"+calStepMethods(3));
System.out.println("走四个台阶:"+calStepMethods(4));
System.out.println("走五个台阶:"+calStepMethods(5));
System.out.println("1的阶乘为:" + factoralByRecurse(1));
System.out.println("5的阶乘为:" + factoralByRecurse(5));
System.out.println("第2位的斐波那契数为:"+fibonacci(1));
System.out.println("第4位的斐波那契数为:"+fibonacci(3));
System.out.println("第6位的斐波那契数为:"+fibonacci(5));
char[] chars={'a','b','a'};
isPalindrome(chars,chars.length,0);
}
public static int calStepMethods(int stairCount) {
if (stairCount < 1) {
return 0;
}
if (stairCount == 1) {
return 1;
}
if (stairCount == 2) {
return 2;
}
return calStepMethods(stairCount - 1) + calStepMethods(stairCount - 2);
}
public static int factoralByRecurse(int n) {
if (n == 0) {
return 1;
} else {
return n * factoralByRecurse(n - 1);
}
}
public static int fibonacci(int n) {
if (n<1){
return 0;
}
if (n == 1 || n ==2){
return 1;
}
return fibonacci(n-1)+fibonacci(n-2);
}
public static boolean isPalindrome(char[] chars,int length,int i){
if (length<=1){
System.out.println("是回文数");
return true;
}else if (chars[i] == chars[length-1]){
return isPalindrome(chars,length-2,i++);
}else {
System.out.println("不是回文数");
return false;
}
}
}