Dato un numero intero positivo (in input o come parametro) restituire in modo letterale.Esempio se io inserisco "28" mi deve restituire "ventotto".
il mio in java (arriva fino a 9999,inutile farlo andare di più tanto il ragionamento è sempre lo stesso ):
[ot]esercizio dato da un prof qualche anno fa,era per me impossibile farlo perchè non avevo le giuste conoscenze e non ero pratico con la programmazione di questo tipo ![/ot]
il mio in java (arriva fino a 9999,inutile farlo andare di più tanto il ragionamento è sempre lo stesso ):
Codice:
public class Convertitore{
String[] n1={"zero","uno","due","tre","quattro","cinque","sei","sette","otto","nove","dieci","undici","dodici","tredici",
"quattordici","quindici","sedici","diciassette","diciotto","diciannove","venti"};
String[] n2={"","vent","trent","quarant","cinquant","sessant","settant","ottant","novant"};
String nn="";
int v=0;
public void Converti(int n){
nn=""+n;
v=n;
if(n>=0 && n<=9999){
if(nn.length()==1){
System.out.println(n1[v]);
}if(nn.length()==2){
System.out.println(twoLength(n));
}if(nn.length()==3){
System.out.println(threeLength(n));
}if(nn.length()==4){
int p=Integer.parseInt((""+nn.charAt(1))+(""+nn.charAt(2))+(""+nn.charAt(3)));
if((""+nn.charAt(0)).equals("1")){
System.out.println("mille"+threeLength(p));
}else{
System.out.println(n1[Integer.parseInt((""+nn.charAt(0)))]+"mila"+threeLength(p));
}
}
}else{System.out.println("Questo programma accetta solo numeri interi positivi da 0 a 9999.");}
}
private String threeLength(int n){
String nn2=""+n;
int p=Integer.parseInt((""+nn2.charAt(1))+(""+nn2.charAt(2)));
if((""+nn2.charAt(0)).equals("1")){
return "cento"+twoLength(p);
}else{
return n1[Integer.parseInt((""+nn2.charAt(0)))]+"cento"+twoLength(p);
}
}
private String twoLength(int n){
String nn2=""+n;
int t=Integer.parseInt(""+nn2.charAt(0));
if(v<=20){
return n1[v];
}else{
if((""+nn2.charAt(1)).equals("1") | (""+nn2.charAt(1)).equals("8")){
return n2[t-1]+n1[Integer.parseInt(""+nn2.charAt(1))];
}else{
if((""+nn2.charAt(0)).equals("2")){
return n2[t-1]+"i"+n1[Integer.parseInt(""+nn2.charAt(1))];
}else{
return n2[t-1]+"a"+n1[Integer.parseInt(""+nn2.charAt(1))];
}
}
}
}
}
[ot]esercizio dato da un prof qualche anno fa,era per me impossibile farlo perchè non avevo le giuste conoscenze e non ero pratico con la programmazione di questo tipo ![/ot]