Поэтому мне пришлось написать простой код, который вычислял бы уравнение 3N + 1; где N - целочисленный тип пользователя, и если он является целым положительным числом, чем N = N/2, и если отрицательное целое число, отличное от N = N * 3 + 1.Почему мой «While Loop» не вычисляет и не распечатывает простое уравнение 3N + 1?
Однако из того, что я могу понять, мой код не работать после первого цикла while и, следовательно, ничего не печатает. Что я делаю не так? Новое в программировании и все еще учусь, так что я ценю вашу помощь :)
Код:
import java.util.Scanner;
public class ThreeNplusOneProgram {
public static void main(String[] args) {
int N; Scanner input = new Scanner(System.in); int counter;
System.out.println("Please Enter an integer: ");
N = input.nextInt();
while (N <= 0) {
System.out.println("ERROR: Please Enter an integer greater than zero: ");
N = input.nextInt();
}
//So far we know that N is great than Zero
System.out.println(N);
counter = 1;
while (N != 1) {
if (N == N % 2)
N = N/2;
else N = N * 3 + 1;
counter = counter + 1;
}
System.out.println("There were" + counter + "terms in the sequence");
}
}
Я пробовал ваш код, и он отлично работает при применении совета @LeeNeverGup –