Sobes.tech
Middle

class ToInfinity { public static void main(String[] args) { //scrivi il codice qui for (int i = start; i <= start + 1; i++) { /* qui deve esserci un ciclo infinito, niente può essere cambiato */ } } }

sobes.tech AI

Risposta dell'AI

In questo codice, è necessario definire la variabile start in modo che il ciclo for (int i = start; i <= start + 1; i++) venga eseguito all'infinito, senza modificare il corpo del ciclo.

Idea: impostare start al valore massimo di int (Integer.MAX_VALUE). In questo modo, la condizione i <= start + 1 sarà sempre vera, poiché al verificarsi dell'overflow start + 1 diventerà il numero negativo minimo, e i non lo supererà mai.

Esempio di soluzione:

class ToInfinity {
    public static void main(String[] args) {
        int start = Integer.MAX_VALUE;

        for (int i = start; i <= start + 1; i++) {
            // ciclo infinito
        }
    }
}

Spiegazione:

  • start = 2147483647
  • start + 1 overflow e diventa -2147483648
  • Con il confronto i <= start + 1, si confronta con un numero negativo, ma i al suo incremento overflowa e diventa negativo, quindi il ciclo non terminerà mai.