Merge branch 'master' of gitea.it:gicorada/java-scuola

This commit is contained in:
Giacomo R. 2023-05-23 21:36:03 +02:00
commit 2bfc3a410c
1 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,61 @@
package ricorsione;
/**
* Collezione di metodi ricorsivi
* @author radaelli11353
*/
public class Ricorsione {
/**
* metodo statico ricorsivo che conta quanti numeri dispari sono presenti
* in un array di interi
* @param x array di interi
* @param pos posizione dell'ultimo elemento
* @return quanti numeri dispari sono presenti nell'array
*/
public static int contaDispari(int[] x, int pos) {
if(pos < 0) return 0;
int contatore = (x[pos] % 2 == 1) ? 1 : 0;
return contatore + contaDispari(x, pos - 1);
}
/**
* metodo statico ricorsivo che restituisce la somma degli elementi
* di un array di interi
* @param x array di interi
* @param pos posizione dell'ultimo elemento
* @return somma degli elementi dell'array
*/
public static int somma(int[] x, int pos) {
if(pos < 0) return 0;
int contatore = x[pos];
return contatore + somma(x, pos - 1);
}
/**
* metodo statico ricorsivo che verifica se una stringa x è contenuta
* nella stringa y
* @param x stringa che deve essere contenuta
* @param y stringa che deve contenere
* @param pos posizione iniziale
* @return x è contenuta in y
*/
public static boolean cerca(String x, String y, int pos) {
if (y.length() - pos < x.length()) return false;
if (y.substring(pos, pos + x.length()).equals(x)) {
return true;
}
return cerca(x, y, pos + 1);
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6};
System.out.println(contaDispari(array, array.length - 1));
System.out.println(somma(array, array.length - 1));
System.out.println(cerca("Test", "Testare", 0));
}
}