public class recursive {
/**
* 倒叙递归
* @param args
*/
public static void main(String[] args) {
String str = "I am student";
String[] s = str.split(" ");
reverse(s,0);
}
public static void reverse(String[] s,int i){
if(i>2){
return;
}
reverse(s,i+1);
System.out.println(s[i]);
}
}
public class HandkerchiefQuestion {
/**
* 丢手绢
* @param args
*/
public static void main(String[] args) {
int n = 17;// 人数
int counter = n;// 计数器
int num = 1;// 数数
int[] array = new int[n];//声明数组
for (int i = 0; i < array.length; i++) {//数组初始化
array[i] = 1;
}
loop: while (true) {
for (int j = 0; j < array.length; j++) {
if (array[j] != 0) {//如果数组元素不为0,则从1开始赋值
array[j] = num;
System.out.println(j+","+num);
if (num % 3 == 0) {//如果赋给数组元素的数能够整除3,则把此数组元素置0,计数器减1(即踢掉一个人)
array[j] = 0;
counter = counter - 1;
if (counter == 1) {//如果最后只剩下一个人,跳出循环
break loop;
}
}
num = num + 1;
}
}
}
for (int k = 0; k < n; k++) {
if (array[k] != 0) {
System.out.println("最后赢家的编号为:"+(k + 1));
}
}
}
}