public class DezimalZahl_als_DualZahl_Ausgeben { // Zur Erinnerung: Fakultät brauchte einen // Rückgabewert, mit dem weitergerechnet wurde. static int f(int n){ if(n>=2) return n * f(n-1); return 1; } // Hier ist die Lösung der Aufgabe: static void printDual (int n){ // Alternativlösung: // Funktion verlassen OHNE returnwert bei void // if(n==0) return; // Ansonsten: Vorgänger betrachten // printDual(n / 2); // und jeweils letzte Stelle ausgeben. // System.out.print(n % 2); if(n!=0) { // Abbruch, wenn von der Zahl nichts mehr übrig ist nach Division // Nächste Stelle, hierhin wird auch zurückgekehrt printDual(n / 2); // merken: n=2, merken: n=1Funktion mit neuem Wert aufrufen // Letzte Stelle der verbleibenden Zahl ausgeben System.out.print(n % 2); } } public static void main(String[] args) { int i = 4321; printDual(i); System.out.println(""); } }