• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sumowanie liczb nieparzystych przy pomocy pętli - wyświetlenie tylko sumy wszystkich liczb nieparzystych

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
66 wizyt
pytanie zadane 19 listopada w Java przez sylwka128 Nowicjusz (170 p.)

Cześć,

Jestem tu pierwszy raz i totalny świeżak w Javie.
Dostałam do zrobienia takie zadanie:

1. Stwórz tablicę z liczbami (4, 643, 112, 9999, 69), tablicę nazwij numbers.
2. W pętli for sprawdź, które są parzyste i wypisz je w konsoli jedna pod drugą.
3. Utwórz dodatkową zmienną sumOdd o wartości 0.
4. Zmodyfikuj pętlę z pkt. 2 w ten sposób, aby dodatkowo sumowała liczby nieparzyste.
5.Wyświetl w konsoli dodatkowy komunikat, wg wzoru: SUMA: 10711.

Utworzyłam taki kod:

public static void main(String[] args) {
		int[] numbers = {4, 643, 112, 9999, 69};
		int sumOdd = 0;
		for (int i = 0; i <= 4; i++) {
			if (numbers[i] % 2 == 0) {
				System.out.println(numbers[i]);

			}
		}
		for (int i = 0; i <= 4; i++) {
			if (numbers[i] % 2 == 1) {
				sumOdd += numbers[i];
				System.out.println("SUMA:" + " " + sumOdd + ".");
			}
		}
	}
}

Ale otrzymuję wynik jak poniżej:
4
112
SUMA: 643.
SUMA: 10642.
SUMA: 10711.

 

Więc ta pierwsza część z liczbami parzystymi jest ok, ale przy nieparzystych nie wiem co robię źle, że wyświetla mi sumę 1 pozycji, potem 1+2, potem 1+2+3. Potrzebuję tylko tej ostatniej. Domyślam się, że coś nie tak z pętlą? Wybaczcie, ale uczę się javy od 2 tyg :)

2 odpowiedzi

+1 głos
odpowiedź 19 listopada przez VBService Ekspert (204,430 p.)
edycja 19 listopada przez VBService

5 punkt, wypisanie zrób poza pętlą

[ on-line ]

        int sumOdd = 0;
        for (int i = 0; i <= 4; i++) {
            if (numbers[i] % 2 == 1) {
                sumOdd += numbers[i];
            }
        }
        System.out.println("SUMA: " + sumOdd + ".");

bo przy każdej iteracji wyświetla się Tobie suma cząstkowa.

 

BTW, nieparzystość można "sprawdzić" przez negację wartości dla parzystej

if (numbers[i] % 2 != 0) { ...

 

1
komentarz 19 listopada przez sylwka128 Nowicjusz (170 p.)
Teraz jest ok, bardzo dziękuję za pomoc!
+1 głos
odpowiedź 23 listopada przez Wiciorny Ekspert (237,950 p.)

Dla ciekawostki : 
Z zlozonosci 0(n^2) - ograniczasz sie tylko do O(n) + 1 
 

  public static void main(String[] args) {
    int[] numbers = {4, 643, 112, 9999, 69};

    final int sum = Arrays.stream(numbers).peek(number -> {
      if (number % 2 == 0) {
        System.out.println("Parzysta: " + number);
      }
    }).filter(number -> number % 2 != 0).sum();
    System.out.println("Suma nieparzystych: " +sum);
  }

 

Podobne pytania

0 głosów
2 odpowiedzi 4,098 wizyt
pytanie zadane 26 listopada 2015 w C i C++ przez agre Użytkownik (550 p.)
+1 głos
1 odpowiedź 522 wizyt
0 głosów
3 odpowiedzi 4,240 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez szejmys Nowicjusz (160 p.)

89,760 zapytań

138,364 odpowiedzi

309,425 komentarzy

59,673 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 908p. - Argeento
  2. 877p. - nidomika
  3. 851p. - Michal Drewniak
  4. 848p. - Mikbac
  5. 846p. - rucin93
  6. 838p. - Łukasz Eckert
  7. 835p. - ssynowiec
  8. 822p. - TheLukaszNs
  9. 794p. - JMazurkiewicz
  10. 787p. - Hubert Chęciński
  11. 786p. - adrian17
  12. 775p. - Jarosław Roszyk
  13. 760p. - Mawrok
  14. 756p. - overcq
  15. 752p. - Vinox
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...