话说某天一艘海盗船被天下砸下来的一头牛给击中了,5个倒霉的家伙只好逃难到一个孤岛,发现岛上孤零零的,幸好有有棵椰子树,还有一只猴子!大家把椰子全部采摘下来放在一起,但是天已经很晚了,所以就睡觉先.晚上某个家伙悄悄的起床,悄悄的将椰子分成5份,结果发现多一个椰子,顺手就给了幸运的猴子,然后又悄悄的藏了一份,然后把剩下的椰子混在一起放回原处,最后还是悄悄滴回去睡觉了.过了会儿,另一个家伙也悄悄的起床,悄悄的将剩下的椰子分成5份,结果发现多一个椰子,顺手就又给了幸运的猴子,然后又悄悄滴藏了一份,把剩下的椰子混在一起放回原处,最后还是悄悄滴回去睡觉了.又过了一会 ......又过了一会 ...总之5个家伙都起床过,都做了一样的事情。早上大家都起床,各自心怀鬼胎的分椰子了,这个猴子还真不是一般的幸运,因为这次把椰子分成5分后居然还是多一个椰子,只好又给它了.问题来了,这堆椰子最少有多少个?
[color=#FF0000]哪个可以教我可以用JAVA算这道题目么???[/color]

解决方案 »

  1.   

    附上代码:
    public static void main(String args[]) {
    int i = 1;
    int k = 0;
    for (;; i +=5) {
    if (i % 5 == 1) {
    k = i - 1 - (i - 1) / 5;
    if (k % 5 == 1) {
    k = k - 1 - (k - 1) / 5;
    if (k % 5 == 1) {
    k = k - 1 - (k - 1) / 5;
    if (k % 5 == 1) {
    k = k - 1 - (k - 1) / 5;
    if (k % 5 == 1) {
    k = k - 1 - (k - 1) / 5;
    if (k % 5 == 1) {
      System.out.println(i);
    break;
    }
    }
    }
    }
    }
    }
    }
    }
      

  2.   

    public class Count {
    public static void main(String[] args) {
    for(int i=1;;++i)
    {
    int b1 = 5*i+1;
    if ( 10*b1%8 != 0)
    continue;
    if( next((int)(b1/0.8)+1, 0) )
    break;
    }
    }

    public static boolean next(int num, int n) {
    if( ++n == 5)
    {
    System.out.println(num);
    return true;
    }
    if( 10*num%8 != 0 )
    return false;
    return next((int)(num/0.8)+1, n);
    }
    }
      

  3.   


    public static void main(String[] args) {
    int result =0;
    for(int k=10;;k++){
    boolean flag = true;
    int sum = k;
    for(int i=1;i<=5;i++){
    if((sum-1)%5==0){
    sum = (sum-1)/5*4;
    }
    else{
    flag = false;
    break;
    }
    }
    if(flag) {
    result = k;
    break;
    }
    }
    System.out.println(result);
    }}result 3121
      

  4.   

    修改了下9#代码: public static void main(String[] args) {
    int result = 0;
    for (int k = 1;; k += 5) {
    boolean flag = true;
    int sum = k;
    for (int i = 0; i <= 5; i++) {
    if ((sum - 1) % 5 == 0) {
    sum = (sum - 1) / 5 * 4;
    } else {
    flag = false;
    break;
    }
    }
    if (flag) {
    result = k;
    break;
    }
    }
    System.out.println(result);
    }}
      

  5.   

    public static void main(String[] args) {
    int result = 0;
    for (int k = 1;; k += 5) {
    boolean flag = true;
    int sum = k;
    for (int i = 0; i <= 5; i++) {
    if ((sum - 1) % 5 == 0) {
    sum = (sum - 1) / 5 * 4;
    } else {
    flag = false;
    break;
    }
    }
    if (flag) {
    result = k;
    break;
    }
    }
    System.out.println(result);
    }}
      

  6.   

    public static void main(String[] args) {
    boolean flag = false;
    int n = 0;
    for (int i = 1; !flag; i++) {
    n = i * 4;
    for (int j = 0; !flag; j++) {
    if (n % 4 != 0)
    break;
    n /= 4;
    n *= 5;
    n++;
    if (j == 4)
    flag = true;
    }
    }
    System.out.println(n);
    }
      

  7.   

    额,后面应该是
    if (j == 5)
        flag = true;
      

  8.   


    public static void main(String[] args) { int sum = 6;

    while(true){
    int k =sum;
    for(int i=1;i<=5;i++){
    if((k-1)%5==0){
    k = (k-1)*4/5;
    }else
    break;
    }
    if((k-1)%5==0)
    break;
    else
    sum ++;
    }
    System.out.print(sum);

    }