Sumowanie cyfr liczby całkowitej wczytanej z wejścia standardowego

0

Utwórz program, który wczytuje z konsoli trzycyfrową liczbę całkowitą (może to być liczba dowolna, będziemy potrzebować tylko 3 z cyfr). Zsumuj wszystkie 3 cyfry razem i wyświetl wynik. Wywołaj utworzoną metodę w metodzie main().

Proszę o pomoc w zadaniu, jestem początkująca i nie wiem jak się za to zabrać, byłby w stanie ktoś mi to wytłumaczyć?

1
Txcv_ napisał(a):

Utwórz program, który wczytuje z konsoli trzycyfrową liczbę całkowitą (może to być liczba dowolna, będziemy potrzebować tylko 3 z cyfr). Zsumuj wszystkie 3 cyfry razem i wyświetl wynik. Wywołaj utworzoną metodę w metodzie main().

Proszę o pomoc w zadaniu, jestem początkująca i nie wiem jak się za to zabrać, byłby w stanie ktoś mi to wytłumaczyć?

Pokaż co już sam zrobiłeś, to wtedy pomożemy.

2
import java.io.*;
public class DigitSumApp {
  private static int sumDigits (int number) {
    int digitSum = 0;
    number = Math.abs (number);
    while (number > 0) {
      digitSum += number % 10;
      number /= 10;
    }
    return digitSum; 
  }
  public static void main (String[] args) throws IOException {
    InputStreamReader inputReader = new InputStreamReader (System.in);
    BufferedReader lineReader = new BufferedReader (inputReader);
    System.out.print ("Wprowadz liczbe: ");
    int number = 0;
    boolean valid = true;
    try {
      number = Integer.parseInt (lineReader.readLine ());
    } catch (NumberFormatException nfe) {
      valid = false;
    }
    if (valid) {
      int sum = sumDigits (number);
      System.out.println ("Suma cyfr wynosi " + sum + ".");
    } else {
      System.out.println ("To nie jest liczba!");
    }
    lineReader.close (); inputReader.close ();
  }
}
5
Manna5 napisał(a):
import java.io.*;
public class DigitSumApp {
  private static int sumDigits (int number) {
    int digitSum = 0;
    number = Math.abs (number);
    while (number > 0) {
      digitSum += number % 10;
      number /= 10;
    }
    return digitSum; 
  }
  public static void main (String[] args) throws IOException {
    InputStreamReader inputReader = new InputStreamReader (System.in);
    BufferedReader lineReader = new BufferedReader (inputReader);
    System.out.print ("Wprowadz liczbe: ");
    int number = 0;
    boolean valid = true;
    try {
      number = Integer.parseInt (lineReader.readLine ());
    } catch (NumberFormatException nfe) {
      valid = false;
    }
    if (valid) {
      int sum = sumDigits (number);
      System.out.println ("Suma cyfr wynosi " + sum + ".");
    } else {
      System.out.println ("To nie jest liczba!");
    }
    lineReader.close (); inputReader.close ();
  }
}

Matko boska, tego main()a to nieźle przeinżynierowałeś.

System.out.print("Wprowadz liczbe: ");
try (Scanner scanner = new Scanner(System.in)) {
  System.out.println("Suma cyfr wynosi " + sumDigits(scanner.nextInt()) + ".");
} catch (NumberFormatException nfe) {
  System.out.println("To nie jest liczba!");
}
0
Manna5 napisał(a):
  public static void main (String[] args) throws IOException {
    InputStreamReader inputReader = new InputStreamReader (System.in);
    BufferedReader lineReader = new BufferedReader (inputReader);
    ...
    lineReader.close (); inputReader.close ();
  }
}

co z inputReaderem jak wywali się zamykanie lineReadera?

1 użytkowników online, w tym zalogowanych: 0, gości: 1