URL: https://www.overclockers.at/coding-stuff/ziffernsumme_in_java_17636/page_1 - zur Vollversion wechseln!
kann mir wer sagen, wie man die Ziffernsumme in Java bildet?
zb. ich geb 3450 ein, und er rechnet dann
3 + 4 + 5 + 0 = 12
danke!
Wie wär's mit Umwandlung in String, Schleife für jedes Zeichen im String bis zu dessen Ende, Umwandlung des einzelnen Zeichens in einen Integer, Addiere aktuelle Zahl zu bisheriger Summe?
Die genaue Syntax von Java ist mir jetzt nicht geläufig, aber ich arbeite daran.
ich nehm an wie in jeder anderen sprache in der es keine eigene funktion dafür gibt.
in die teilzahlen zerlegen mit division und diese dann zusammenzählen
3450 / 1000 = 3
450 rest /100 = 4
50 rest / 10 = 5
0 rest / 1 = 0
3+4+5+0 = 12
noledge
ok, danke!
ich hatte gehofft, man muss es nicht so umständlich machen!
Aber es gibt also wirklich keinen eigenen Befehl dafür!
Zitat von noledgeich nehm an wie in jeder anderen sprache in der es keine eigene funktion dafür gibt.
in die teilzahlen zerlegen mit division und diese dann zusammenzählen
3450 / 1000 = 3
450 rest /100 = 4
50 rest / 10 = 5
0 rest / 1 = 0
3+4+5+0 = 12
noledge
Zitat von rettichfür den fall musst aber wissen, wie lang die zahl ist!? mit einer schleife über einen string net, da zählt er bis zum end-char.
Zitat von noledgemusst ned, kannst ja bei /100000000 anfangen, den divisor dievidierst jedesmal durch 10. dort wo keine zhal ist, kommt eh 0 raus und beeinflusst die summe nicht.
nolede
er hat nach EINER lösung gefragt, oder?
noledge
Zitat von noledgeer hat nach EINER lösung gefragt, oder?![]()
noledge
brauchst dich ned entschuldigen, weiß selber das keine saubere lösung ist... aber es funktioniert
noledge
mir war fad du musst halt nur einen string übergeben
package test;
import java.lang.Math;
public class Unbenannt1 {
public Unbenannt1() {
System.out.println(sum("1234567891011"));
}
public int sum(String x){
int temp = 0;
if(x.length()>1){
temp+= sum(x.substring(0,(int)java.lang.Math.floor(x.length()/2)));
temp+= sum(x.substring((int)java.lang.Math.floor(x.length()/2)));
}
else
return Integer.parseInt(x);
return temp;
}
public static void main(String[] args) {
Unbenannt1 unbenannt11 = new Unbenannt1();
}
}
Zitat von rettichfür den fall musst aber wissen, wie lang die zahl ist!? mit einer schleife über einen string net, da zählt er bis zum end-char.
Zitat von noledgemusst ned, kannst ja bei /100000000 anfangen, den divisor dievidierst jedesmal durch 10. dort wo keine zhal ist, kommt eh 0 raus und beeinflusst die summe nicht.
funkt ned weil wenn mal a ziffa 0 is bricht er schon ab...
machst halt einfach:
if (zahl != 0)
{
Befehle
}
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025