50,503
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 5;
System.out.println(survival(n));
}
static int survival(int n) {
switch (n) {
case 0 :
return 1;
case 1:
return 2;
case 2:
return 3;
case 3:
return 7;
default :
return 2*survival(n-1)-survival(n-4);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 5;
Queue<Integer> queue = new LinkedList();
queue.add(0);
for(int i = 0; i < n; i++){
int k = queue.size();
for(int j = 0; j < k; j++){
int num = queue.poll();
queue.add(0);
queue.add(0);
if(num != 2)
queue.add(num + 1);
}
}
System.out.println(queue.size());
}
public static void main(String[] args) {
int n = 7;
int sum = 1;
//存前三次新增的数量,用来减的,初始化第0次新增1
int[] incr = new int[]{1, 0, 0};
for (int i = 1; i <= n; i++) {
System.out.println(String.format("第%s次开始,这次死亡数据为第%s次新增,数量为%s,复制基数为(%s-%s)*2=%s",
i, i - 3, incr[i % 3], sum, incr[i % 3], (sum - incr[i % 3]) * 2));
int temp = (sum - incr[i % 3]) * 2;
incr[i % 3] = temp - sum;
System.out.println(String.format("第%s次新增%s", i, incr[i % 3]));
sum = temp;
}
System.out.println(sum);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 5;
System.out.println(survival(n));
}
static int survival(int n) {
switch (n) {
case 0 :
return 1;
case 1:
return 2;
case 2:
return 3;
case 3:
return 7;
default :
return 2*survival(n-1)-survival(n-4);
}
}
[/quote]
谢谢大佬的解答啦