[java] Metodo che da un intero restituisce un array
| Programmazione - java |
import fiji.io.*;
/*Scrivere un metodo ricorsivo Java
int[ ] trasforma1(int n)
che dato un intero positivo n calcola e restituisce un array costituito dalle cifre
di n dalla meno significativa alla più significativa*/
class Prove
{
public static int[] trasforma1(int n) //metodo che serve per passare al metodo ricorsivo i
{//parametri necessari
String s = String.valueOf(n);//Creo una stringa per calcolarmi il valore della
//lunghezza dell'intero
int[] vet = new int[s.length()];//lunghezza dell'intero
return trasforma1(n,0,vet,s.length());//metodo che sarà ricorsivo dove passo il numero,
}//un contatore che parte da 0 (cioè k),l'array che dovrò creare,la lunghezza
//dell'array
public static int[] trasforma1(int n, int k, int[] cia,int l)//creo il vettore prima altrimenti
{ //il vettore verrebbe creato ricorsivamente e quindi non si risolverebbe nulla
if ((n>0)&&(n<=9))//passo base
{
cia[l-1]=n%10; //oppure n ... è la stessa cosa
}
else //passo induttivo
{
cia[k++]=n%10; //il valore successivo dell'array vale il resto di
//n diviso 10
trasforma1(n/10,k++,cia,l);//richiamo il metodo con i nuovi parametri
}
return cia;
}
public static void stampa(int[] v) //metodo che mi serve per leggere a schermo l'array
{
int i;
System.out.println("array letto: ");
for (i = 0; i < v.length; i++)
System.out.print(v[i] + " ");
System.out.println();
}
public static void main(String[] args) //il main per provare
{
int a = 3446789;
stampa(trasforma1(a));
}
}
per esercizio potete fare questo :
Scrivere un metodo ricorsivo Java
char[ ] trasforma2(String s)
che data una stringa s calcola e restituisce un array costituito dai caratteri di s dall’ultimo al primo

