Ich mag die Anzahl der Buchstaben in den Worten von 1 bis 100 zum Beispiel berechnen ....leerer String in einem Array von Strings
Wenn die Zahlen 1 bis 5 sind in Worten ausgeschrieben: eins, zwei , drei, vier, fünf,
dann gibt es 3 + 3 + 5 + 4 + 4 = 19 Buchstaben insgesamt verwendet.
, für die ich den folgenden Code geschrieben haben ...
public static int helper(int a){
String ones[]= {"","one","two","three","four","five","six","seven","eight","nine","ten",
"eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen"
,"eighteen","nineteen"};
String tens[]= {"","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
if(a<20){
return ones[a].length();
}
else
return tens[a/10].length();
}
public static int countLetters(int a){
if(a==100)
return 10;
else if(a<20){
return helper(a);
}
else{
return helper((a/10)*10)+ helper(a%10);
}
}
Die Hauptfunktion sieht aus wie
public static void main(String[] args) {
// TODO Auto-generated method stub
int result=0;
for(int i=1;i<=100;i++){
result+=countLetters(i);
}
System.out.println(result);
}
Die richtige Antwort für dieses Problem 864
ist. In der String ones[]
Reihe verwendete ich Interpunktionszeichen " "
mit Abstand zwischen ihnen. Die result
zurückgegebene war 872
, die falsch ist, aber nach dem Entfernen von Leerzeichen zwischen ihnen Antwort zurückgegeben wurde 864
. Ich habe ""
ohne Leerzeichen verwendet. Ich frage mich, warum das passiert ist ..?
Gibt es einen logischen Aspekt in Bezug auf Strings oder String-Arrays für dieses Problem?
Was meinst du? Ein Leerzeichen ('' '') beeinflusst offensichtlich die 'length()' einer Zeichenkette. – aioobe
Ja, mir ist das bewusst, aber ich verstehe nicht, warum das meine Antwort beeinflussen würde? Da auf diesen Wert in meinem Code nie zugegriffen wird, dient er nur dazu, den String-Werten 'one'' two' die richtigen Indizes zu geben. –
Ich denke, Sie sollten sich mein Problem und Code zum besseren Verständnis ansehen .... –