function a(n, m){
//每次拿走之后剩余num
var num = n-1-(n-1)/5;
m--;
if( m > 0 ){
//每次拿走的香蕉都能被5整除
if( (n-1)%5 == 0 ){
return a( num, m );
}else{
return "不符合";
}
}else{
return "符合";
}
}
alert( a(3121, 5) ); //符合
alert( a(3211, 5) ); //不符合
alert( a(3321, 5) ); //不符合
alert( a(3111, 5) ); //不符合
public class test {
public static void fun() {
int y5, y4, y3, y2, y1, i = 1;//y
while (true) {
y5 = 5 * i + 1;
if (y5 % 4 == 0) {
y4 = (y5 / 4) * 5 + 1;
if (y4 % 4 == 0) {
y3 = (y4 / 4) * 5 + 1;
if (y3 % 4 == 0) {
y2 = (y3 / 4) * 5 + 1;
if (y2 % 4 == 0) {
y1 = (y2 / 4) * 5 + 1;
System.out.println(i);
System.out.println(y1);
break;
}
}
}
}
i++;
}
}
public static void main(String[] args) {
fun();
}
}
A
#include <iostream>
int main()
{
int n,k=1,current_app=0;//n代表猴子的个数,k代表每次分配n份后,多余的香蕉数,current_app代表每次分完走之后香蕉数
bool flag = false;
std::cin >> n;
int j = 1;//j代表最后一个猴子分配之后,每份的个数,最少从1开始
for (;;j++)
{
current_app = n*j + k;
for (int i = 1; i < n; i++)
{
if (current_app % (n-1) == 0)
{
current_app = current_app * n / (n - 1) + k;
}
else
{
break;
}
if (i == n-1)
{
flag = true;
break;
}
}
if (flag == true)
{
break;
}
}
std::cout << current_app << " " << j << std::endl;
system("pause");
return 0;
}