[Algoritmi Java] sono alle prime armi
Salve ragazzi, ho da poco approcciato a questo linguaggio di programmazione e ho alcuni problemi su due algoritmi che credo siano semplici. Premetto che andrebbe svolto senza utilizzare array perché li presenta in capitoli successivi.
Primo:
Dato un numero naturale n, stampare un quadrato (solo il bordo) di asterischi di lato n.
Secondo:
Dato un numero naturale n, stampare un triangolo rettangolo (solo il bordo) di asterischi di lato n.
Finché si tratta di farli "pieni" ci riesco, mentre ho problemi a fare solo il bordo e lasciare gli spazi dentro.
Primo:
Dato un numero naturale n, stampare un quadrato (solo il bordo) di asterischi di lato n.
Secondo:
Dato un numero naturale n, stampare un triangolo rettangolo (solo il bordo) di asterischi di lato n.
Finché si tratta di farli "pieni" ci riesco, mentre ho problemi a fare solo il bordo e lasciare gli spazi dentro.
Risposte
Ciao, prendiamo il caso del quadrato: se il tuo numero è $n$ allora per la prima e l'ultima riga (lato superiore e inferiore) stampi $n$ asterischi. Per le altre righe in mezzo (che sono $n-2$) stampi un asterisco, quindi $n-2$ spazi, quindi un altro asterisco. Prova a buttare giù un po' di codice.
Sono arrivato a questo punto:
...
int lato = 10;
for (int i=0; i
for(int j=1; j
if (i==0 || i== (lato-1))
System.out.print ("*");
if (j==0 || j== (lato-1))
System.out.print ("*");
}
System.out.println (" ");
}
...
cosi facendo mi viene una sorta di C... precisamente così:
* * * * * * * * * *
*
*
*
*
*
*
*
*
* * * * * * * * * *
...
int lato = 10;
for (int i=0; i
System.out.print ("*");
if (j==0 || j== (lato-1))
System.out.print ("*");
}
System.out.println (" ");
}
...
cosi facendo mi viene una sorta di C... precisamente così:
* * * * * * * * * *
*
*
*
*
*
*
*
*
* * * * * * * * * *
Ciao, prova questo:
public static void main(String[] args) { int lato = 10; // lato superiore for(int i=0; i<lato; i++) System.out.print("*"); // a capo System.out.println(); // altre "righe" for(int i=0; i<lato-2; i++) { System.out.print("*"); for(int j=0; j<lato-2; j++) System.out.print(" "); System.out.print("*"); System.out.println(); } // lato inferiore for(int i=0; i<lato; i++) System.out.print("*"); }
mitico!

Però hai capito come funziona?
sì grazie mille