potete farmi un esempio facile di un programma completo che usa ricorsione in java?
ad esempio un programma che si richiama incrementando una variabile e che esce quando la variabile è 10.
grazie.
potete farmi un esempio facile di un programma completo che usa ricorsione in java?
ad esempio un programma che si richiama incrementando una variabile e che esce quando la variabile è 10.
grazie.
Ciao: ecco il codice; non l'ho provato ma dovrebbe andare:
Codice PHP:
public class TestRicorsione{
public void incrementa( int x ){
if( x < 10 ){
x++;
incrementa( x );
}else{
System.out.println( "E' 10 oo maggiore" );
System.exit(1);
}
}
public static void main( String[] arg ){
new TestRicorsione().incrementa( 5 );
}
}
Se vuoi trovare l'arcobaleno, devi sopportare la pioggia
Scusa Angelo...
ma nella ricorsione usi un System.exit, non mi sembra un esempio didattico. Appena riesco a far riprendere il pc... ci provo.
..::200 post il 1 settembre 2004::..
..::100 13/07/2004::..
..): Web Site (pazienza però) ..
VASCO castiga chi non lecca la FIGA
Lo so Kate (penso caterina ), l'esempio, purtroppo mi è venuto così, a volte mi succede; basta togliere il System.exit. Cmq esso non inficia sulla ricorsione, si arriva a dieci e si esce dall'applicazione.
Ciao
Se vuoi trovare l'arcobaleno, devi sopportare la pioggia
import java.io.*;
import java.util.*;
public class trova{
int[] vettore=new int[10];
public boolean trova( int sinistro ,int destro,int []vettore){
int num=vettore[0];
boolean trovato=false;
int[] app=vettore;
int a,b;
b=destro;
a=sinistro;
if (vettore[((b-a)/2)]==num){
trovato=true;
}
else{
if (vettore[((b-a)/2)]<num){
trova(((b-a)/2),b, app);
}
else
{trova(a,((b-a)/2),app);
}
}
return(trovato);
}
public static void main(String[]args){
BufferedReader C = new BufferedReader (new InputStreamReader(System.in));
String numeri="";
try{
System.out.println("Scrivi una serie di 10 numeri intervallati da uno "-", il primo numero è quello da ricercare all'interno della serie .I numeri successivi al primo devono esser scritti in ordine crescente") ;
numeri=C.readLine();
}catch (Exception e){System.out.println("errore");}
StringTokenizer tokenizer = new StringTokenizer(numeri,"-");
int[] vett=new int[10];
for(int i=0;i<10;i++){
vett[i]=Integer.parseInt(tokenizer.nextToken());
}
for(int i=0;i<10;i++){
System.out.println(vett[i]);
}
boolean cerca=false;
cerca=trova(1,9,vett);
}
}
ho creato questo programma, con ricorsione
il concetto era chiaro, grazie delle risposte.. il mio dubbio risiedeva altrove e fortunatamente ho risolto.
Questo programma mi da un errore durante la fase di compilazione ed esattamente:
C:\Programmi\Java\jdk1.5.0\bin\trova.java:53: non-static method trova(int,int,int[]) cannot be referenced from a static context
cerca=trova(1,9,vett);
sapreste scovarmi l'errore, perchè leggendo non riesco a capire dove metter le mani.
Grazie ancora!
[scusate la mancata indentazione, ma sul copia incolla da jedit è saltata ]
rendi static il metodo trova:
public static boolean trova( int sinistro ,int destro,int []vettore){ ....
perche lo chiami d un metodo static (il main) e i metodi static possono solo acccedere a membri static.
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals
Te l'hoscritto nel messaggio di prima...
public static boolean trova( int sinistro ,int destro,int []vettore){ ....
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals