Проверьте, является ли # четным или нечетным, затем скажите, сколько есть терминов, и получите сумму всех выходных значений. - PullRequest
0 голосов
/ 12 ноября 2018

Это для школы, и у меня есть небольшие проблемы с этим. Учитель хочет, чтобы мы это делали:

  • Подсчет количества слагаемых
  • Сумма всех значений

(ОБРАТИТЕСЬ К ПРИМЕРУ НИЖЕ В РЕДАКЦИИ)

The 1012 * формула * показано на рисунке ссылка уже в коде. У меня возникли проблемы, пытаясь понять, как сделать две вещи, перечисленные выше. Я знаю, что ответ, вероятно, очевиден, но я перепробовал все, что мог придумать.

РЕДАКТИРОВАТЬ: Первоначальная цель кода состоит в том, чтобы ввести число (через сканер), а затем использовать две разные формулы для этого числа, пока вы, наконец, не достигнете 1.

Пример:

Ввод: 6

Выход: 6, 3, 10, 5, 16, 8, 4, 2, 1

С чем я прошу помощи:

Условия: 9

Сумма: 55

import java.util.Scanner;

class Main {
  public static void main(String[] args) 
  {

    Scanner numInput = new Scanner(System.in);

    System.out.print("Number: ");
    int x = numInput.nextInt();
    int termAmt = 0;

    System.out.println(" ");
    System.out.print(x + " ");

    while (x != 1)
    {
// Checking if number is odd or even
      if ( (x % 2) == 0 ) 
      { 
       // This is the formula for if the number is even
        x = x / 2;
        System.out.print(x + " "); 
      } 

      else 
      { 
// This is the formula for if the number is odd
        x = (x*3) + 1;
        System.out.print(x + " "); 

      }  
    }

    System.out.println(" ");
    System.out.println(" ");

// This is here for when I print out how many terms are printed in the output

    System.out.println("Terms: " + termAmt);


  }
}

1 Ответ

0 голосов
/ 12 ноября 2018

Попробуйте это обновление для своего кода:

import java.util.Scanner;

class Main {
public static void main(String[] args) 
{

Scanner numInput = new Scanner(System.in);

System.out.print("Number: ");
int x = numInput.nextInt();
int value = x;
int termAmt = 1;
int sum = 0;
System.out.println(" ");
System.out.print(x + " ");

while (x != 1)
{
  if ( (x % 2) == 0 ) 
  { 
    x = x / 2;
    System.out.print(x + " "); 
  } 

  else 
  { 
    x = (x*3) + 1;
    System.out.print(x + " ");

  }  
 /*Update starts*/
    //This next line adds one to the termAmt value each time it goes through the loop.
 termAmt = termAmt + 1;
 sum = sum + x;
}
sum += value; 

System.out.println(" ");
System.out.println(" ");

System.out.println("Terms: " + termAmt);
System.out.println("Sum: " + sum);
sum = 0;

}
}
...