62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.Scanner;
public class MonkeyPeeach {
static StringBuffer sb = new StringBuffer();
public static void main(String[] args) {
int monkeyNumber = 0;
Scanner in = new Scanner(System.in);
monkeyNumber = in.nextInt();
for(int i = 4;i<1000;i++){
showPeeachNumber(monkeyNumber,25);
}
System.out.println(sb.toString().split("\\#")[0]);
}
private static void showPeeachNumber(int monkeyNumber, int peeachNumber) {
int nowTotalPeeach = 0;
int count = monkeyNumber;
int totalNumber = peeachNumber;
/*
* 总共monkeyNumber猴子,没只猴子把桃子分为monkeyNumber份,然后都会多余一个,然后再吃掉
* 所以假设桃子总数为N,则N-1必须能被monkeyNumber整除,第一只猴子过后剩余的桃子数目为:N-1*(N-1)/monkeyNumber-1=(N-1)*monkeyNumber/2,假设为3只猴子
* 则为(N-1)*3/2,第二只猴子为((N-1)*3/2-1)*3/2,一依次类推,当三只猴子都进行玩了的时候,寻找能够整除猴子数量的整数。
*/
if(!((peeachNumber-1)% monkeyNumber==0)){
return;
}else{
int i = 0;
for(i = 0;i<monkeyNumber;++i){
nowTotalPeeach=(totalNumber-1)/monkeyNumber*(monkeyNumber-1);
totalNumber = nowTotalPeeach;
if(i==monkeyNumber&&(totalNumber%3==0)){
break;
}
System.out.println("桃子总数"+peeachNumber);
}
if(i==monkeyNumber&&totalNumber%3==0){
sb.append(peeachNumber+"#");
}
}
}
}