Ragazzi, mi sto sbattendo la testa per stampare questo metodo ricorsivo.
Devo realizzare la sequenza di Kaprekar.
il metodo che definisce ogni numero è questo:
[CODE]
public static int next(int n){

String s = Integer.toString(n);
String s1 = "", s2 = "";
String[] array = new String[s.length()];
for(int i=0;i<array.length;i++){
char c = s.charAt(i);
array[i] = Character.toString(c);
}
Arrays.sort(array);
for(int i=0;i<array.length;i++){
s1 = s1.concat(array[i]);
}
for(int i=array.length-1;i>=0;i--){
s2 = s2.concat(array[i]);
}
int a = Integer.parseInt(s1);
int b = Integer.parseInt(s2);
int ris = b-a;

return ris;
}
/CODE]
anche se è un pò contorto però funziona.
Adesso devo fare il metodo stampaSequenza(int n).
la stampa deve terminare quando next(n) = next(i). cioè mi spiego meglio:
La sequenza di Kaprekar dice questo:
prendo un numero, tipo 86
da questo creo due interi a e b, a = 68 e b = 86...cioè a è composto dalle cifre del numero in ordine crescente e b in ordine decrescente
poi faccio b-a, che in questo caso è 18 e vado avanti così prendendo 18 come numero iniziale...
la sequenza finisce quando next(n) = n...in questo caso è next(0) = 0.
Spero di essermi spiegato bene.
Come faccio a stampare la sequenza?