[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