Guide for Escriu en un Array (3)
Com abordar aquest problema
Ara no saps per endavant quants nombres hi ha: has de llegir nombres separats per espais fins que en \ trobis un que valgui -1 (aquest -1 marca el final i NO forma part de la llista). Després has d'accedir \ a la posició \(N\) de la llista que has construït.
Idea general:
- Llegeix tota la primera línia i separa-la en nombres.
- Recorre aquests nombres i vés-los afegint a una llista, ATURANT-TE quan trobis el -1 (aquest -1 no \ s'afegeix a la llista).
- Llegeix \(N\).
- Imprimeix la llista sencera en notació estàndard (entre claudàtors i separada per comes:
[a, b, c]). - Imprimeix l'element de la posició \(N\).
Paranys habituals:
- No et quedis l'últim valor (-1): és només el marcador de final.
- Aquest cop no fas servir un array de mida fixa: fes servir una estructura que pugui créixer (una \
llista/
ArrayList), ja que no saps per endavant quants nombres hi haurà.
Pista per a Java
En Java, ArrayList pot créixer dinàmicament, i el seu mètode toString() (que crida \
automàticament System.out.println) ja mostra la llista en el format [a, b, c]:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringTokenizer st = new StringTokenizer(sc.nextLine());
List<Integer> llista = new ArrayList<>();
while (st.hasMoreTokens()) {
int v = Integer.parseInt(st.nextToken());
if (v == -1) break;
llista.add(v);
}
int n = Integer.parseInt(sc.nextLine().trim());
System.out.println(llista);
System.out.println(llista.get(n));
}
}
Fixa't que amb ArrayList no cal saber la mida per endavant, i llista.get(n) accedeix a la posició \(N\).