Java Hailstone Sequence - PullRequest
       10

Java Hailstone Sequence

0 голосов
/ 14 марта 2019

Я должен сделать код последовательности Hailstone в Java, например, он должен выглядеть следующим образом:

10 5 16 8 4 2 1 4 2 1

Мой выглядит так:

10 5 16 8 4 2 1

Как это исправить?

Это мой код:

static int counter; 

static int HailstoneNumbers(int Number) 
{ 

    System.out.print(Number+ " ");

    if (Number == 1 && counter == 0) { 
        return counter; 
    }  
    else if (Number == 1 && counter != 0) { 
        counter++; 
        return counter; 
    }  
    else if (Number % 2 == 0) { 
        counter++; 
        HailstoneNumbers(Number / 2); 
    }  
    else if (Number % 2 != 0) { 
        counter++; 
        HailstoneNumbers(3 * Number + 1); 
    } 
    return counter; 
} 


public static void main(String[] args) 
{ 
    int Number;

    KeyboardReader reader = new KeyboardReader();

    System.out.println("What is your intial value? ");
    Number = reader.readInt();

    int x; 

    x = HailstoneNumbers(Number); 

    System.out.println(); 
    System.out.println("Number of Steps: " +x); 
} 
}

1 Ответ

0 голосов
/ 14 марта 2019

Ваш код явно говорит, чтобы остановить последовательность, когда она достигает числа 1. Возможно, вы имели в виду поведение, которое будет отличаться в зависимости от значения счетчика, но не ясно, почему это должно не останавливается на первом 1, но должен остановиться на втором (так как counter не будет 0 для любого из них).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...