Hallo ihr lieben. Die Aufgabenstellung lautet.
-Methode int gibAnzahl(long, int), die angibt, wie häufig eine Ziffer (2. Parameter)
in der Dezimaldarstellung einer Zahl (1. Parameter) vorkomm
Dabei darf ich keine Schleifen nutzen, lediglich einen bedingten Ausdruck.
____________________________________________________________________________
Meine Lösung sieht aktuell wie folgt aus.
_____________________________________________________________________________
Ich habe das ganze jetzt mithilfe der Überladung lösen können.
Mich würde allerdings interessieren wie ich das ganze ohne die Überladung und nur mit
2 Parametern und dem bedingten Ausdruck bewerkstelligen kann.
Ich wüsste zum ende hin nicht, wie ich die anzahl erhöhe und zeitgleich die Methode neu aufrufe wenn der Asudruck ja ist (zahl1 % 10 == zahl2)
______________________________________________
lieben Dank im vorfeld.
lg
NoP-ay
-Methode int gibAnzahl(long, int), die angibt, wie häufig eine Ziffer (2. Parameter)
in der Dezimaldarstellung einer Zahl (1. Parameter) vorkomm
Dabei darf ich keine Schleifen nutzen, lediglich einen bedingten Ausdruck.
____________________________________________________________________________
Meine Lösung sieht aktuell wie folgt aus.
Java:
public static int gibAnzahl(long zahl1,
int zahl2) {
return gibAnzahl(zahl1, zahl2, 0);
}
public static int gibAnzahl(long zahl1,long zahl2,int startwert) {
return zahl1 < 10
? zahl1 == zahl2
? startwert + 1
: startwert
: zahl1 % 10 == zahl2
? gibAnzahl(zahl1 / 10, zahl2, startwert + 1)
: gibAnzahl(zahl1 / 10, zahl2, startwert);
}
Ich habe das ganze jetzt mithilfe der Überladung lösen können.
Mich würde allerdings interessieren wie ich das ganze ohne die Überladung und nur mit
2 Parametern und dem bedingten Ausdruck bewerkstelligen kann.
Ich wüsste zum ende hin nicht, wie ich die anzahl erhöhe und zeitgleich die Methode neu aufrufe wenn der Asudruck ja ist (zahl1 % 10 == zahl2)
______________________________________________
Java:
public static int gibAnzahl(long zahl1,
int zahl2) {
int anzahl = 0;
return zahl1 < 10
? zahl1 == zahl2
? anzahl + 1
: anzahl
: zahl1 % 10 == zahl2
? gibAnzahl(zahl1,zahl2)
lieben Dank im vorfeld.
lg
NoP-ay