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

mnożenie elemętów listy java

Object Storage Arubacloud
0 głosów
1,368 wizyt
pytanie zadane 20 października 2018 w Java przez mn130496 Gaduła (3,530 p.)

Witam 

Mam do napisania program który wczytuje liczby aż do momętu podania 5 a następnie wyświetla iloczyn tych liczb.

Narazie napisałem taki kod:

package zadania_lab3;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
public class zad4 {
	public static void main(String[] args) {
		int a = 0;int iloczyn=0,i=0;
		List<Integer> lista = new ArrayList<Integer>();
		System.out.println("Podaj liczbę");
		Scanner odczyt = new Scanner(System.in);
		//dodaje liczby do listy dopuki nie podam 5
		while(a!=5) {
			a=odczyt.nextInt();
			lista.add(i, a);
			i++;
		}odczyt.close();
		//obliczanie iloczynu
		for( i=0; i<lista.size(); i++) {
			
		}
		
	}
}

Teraz niewiem jak wymnożyć elemęty tej listy i przypisać je do zmiennej iloczyn.Czy ktoś mógłby mi w tym pomóc?.Z góry dziękuję

komentarz 20 października 2018 przez mbabane Szeryf (79,280 p.)
 while(a!=5) {
            a=odczyt.nextInt();
            lista.add(i, a);
            i++;
        }odczyt.close();

To i jest tutaj zbędne:

 while(a!=5) {
     a=odczyt.nextInt();
     lista.add(a);
        }
odczyt.close();

 

2 odpowiedzi

+1 głos
odpowiedź 20 października 2018 przez miro Pasjonat (23,870 p.)
edycja 20 października 2018 przez miro
Zmień int iloczyn=0 na int iloczyn=1; potem w pętli.
iloczyn *=iloczyn lub iloczyn =iloczyn * iloczyn

Nie musisz w ogóle korzystać z tablicy, a od razu liczyć na bieżąco ten iloczyn w pętli while.

Na początek może to za dużo dla Ciebie, ale zamiast fora możesz użyć reduce.
int iloczyn = lista.stream().reduce(1,(x, y) -> x * y);

PS
Doczytaj o ArrayList bo zamiast lista.add(i, a); możesz od razu dodawać element na koniec tablicy   lista.add(a);
0 głosów
odpowiedź 20 października 2018 przez kejm_ Bywalec (2,310 p.)
import java.util.Scanner;

public class IloczynLiczb {

    public static void main(String[] args) {

        int[] tab = new int[999];
        int iloczyn=1;
        
        System.out.println("Podaj liczby");

        Scanner load = new Scanner(System.in);
        
        for(int i=0; i<tab.length; i++){

            tab[i]=load.nextInt();

            if(tab[i]==5) {
                load.close();

                for (i = 0; i < tab.length;) {
                    iloczyn *= tab[i];
                    i++;

                    if(tab[i]==0) {
                        System.out.println(iloczyn);
                        System.exit(0);
                    }
                }

            }

        }

    }
}

komentarz 20 października 2018 przez RafalS VIP (122,820 p.)
int[] tab = new int[999];

po co wgl tablica? A jeśli już to czemu nie ArrayLista? I dosyć zagmatwany ten algorytm :P 

Nie używaj System.exit, bo to podejście goto.

Ja bym to tak napisał:

        int iloczyn = 1;
        Scanner scanner = new Scanner(System.in);
        int liczba = 1;
        while (liczba != 5) {
            iloczyn *= liczba;
            liczba = scanner.nextInt();
        }
        System.out.println(iloczyn);

 

komentarz 20 października 2018 przez kejm_ Bywalec (2,310 p.)

dosyć zagmatwany ten algorytm :P 

Heh rozbawiłeś mnie tym ;D

Tak brakuje tam optymalizacji, a System.exit rzecz jasna jest to lipa. Miłego wieczoru! 

Podobne pytania

+1 głos
1 odpowiedź 821 wizyt
pytanie zadane 23 października 2021 w Java przez DzikieHarce Użytkownik (690 p.)
0 głosów
1 odpowiedź 1,996 wizyt
pytanie zadane 4 grudnia 2018 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 31 stycznia 2017 w Java przez 0xf Dyskutant (8,180 p.)

92,555 zapytań

141,402 odpowiedzi

319,544 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...