|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 27851
|
[Java] Probl con esercizio con ricorsione
Ciao a tutti, premetto che nn sono affatto esperto, però java mi interessa e nn mi riesce un esercizio, basato appunto sulla ricorsione, con cui ho qualche difficoltà. L' esercizio chiede di vedere se la parola data è palindroma mediante un metodo ricorsivo con intestazione nn modificabile:
" public class Es60 { public static boolean palindroma(char [] arr){ int from = 0; int to = arr.length-1; if (arr.length<=1) return true; else if (arr[from]==arr[to] && from<to){ from ++; to ++; return palindroma(arr); } else return false; }}" io avevo in mente una cosa del genere ma mi genera errore durante l'esecuzione del main (che è già dato) sulla riga dell'else if, e precisamente mi da errore quando va ad analizzare un array con + di un elemento. Poteti darmi qualche aiuto, e magari indicarmi dove trovare qualche spiegazione sulla ricorsione?perchè nn la digerisco molto
__________________
CPU: Ryzen 5700x COOLER: Noctua NH-D15S MOBO: Gigabyte b550 Professional RAM: 4x8 @3600 GPU: XfX Qick319 Rx6700XT ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Quote:
Codice:
palindroma(Arrays.copyOfRange(arr, from, to)) Inoltre c'è un errore anche nell'aggiornamento degli indici: il puntatore di "fine array" va decrementato, non incrementato come fai tu (devi scrivere "to--", e non "to++"). Forse queste correzioni dovrebbero bastare.
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN Ultima modifica di Mixmar : 23-01-2008 alle 20:41. Motivo: Consecutio temporum |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 27851
|
Quote:
![]() ![]()
__________________
CPU: Ryzen 5700x COOLER: Noctua NH-D15S MOBO: Gigabyte b550 Professional RAM: 4x8 @3600 GPU: XfX Qick319 Rx6700XT ![]() |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
Codice:
public class Es60 { public static boolean palindroma(char [] arr){ int from = 0; int to = arr.length-1; if (arr.length<=1) return true; else if (arr[from]==arr[to] && from<to){ //from < to a cosa serve? from è sempre minore di to quando si arriva a questo controllo char[] newArr=new char[arr.lenght-2]; System.arraycopy(arr,1,newArr,0,arr.length-2); return palindroma(newArr); } else return false; }}" |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:07.