public class TestFire {
//递归 输出一个多位整数每个位上的数
public static void func1(int num){
if(num > 9){
func1(num/10);
}
System.out.print(num % 10 + " ");
}
//求1+2+3+……+n
public static int func2(int num){
if(num == 1){
return 1;
}
return num + func2(num - 1);
}
//求一个整数每个位上数的和
public static int func3(int n){
if(n < 10){
return n;
}
return n % 10 +func3(n / 10);
}
//fibonacci数,从第三项开始,该项等于前两项之和
public static int fibonacci(int n){
if(n <= 2){
return 1;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static int fibonacci1(int n){
int f1 = 1;
int f2 = 1;
int f3 = 1;
for (int i = 3; i <= n; i++) {
f3 = f1+f2;
f1 = f2;
f2 = f3;
}
return f3;
}
//汉诺塔游戏
public static void move(char pos1,char pos2){
System.out.println(pos1+"->"+pos2);
}
public static void hanoi(int n,char pos1,char pos2,char pos3){
if(n == 1){
move(pos1,pos3);
}else{
hanoi(n-1,pos1,pos3,pos2);
move(pos1,pos3);
hanoi(n-1,pos2,pos1,pos3);
}
}
public static void main(String[] args) {
hanoi(3,'a','b','c');
//System.out.println(fibonacci1(7));
//System.out.println(func3(145));
//System.out.println(func2(10));
//func1(5731);
}
}