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; }