Rekursives Programmieren

  • Java

  • xlemmingx
  • 1492 Aufrufe 2 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Rekursives Programmieren

    Hi,

    Ich bin inzwischen beim rekursiven Programmieren angelangt, aber komm damit noch nicht so ganz klar. Wir sollen ein rekursives Programm schreiben, dass einen Wert mit einer beliebigen Basis von 2 bis 16 ins Dezimalsystem umrechnet und ich hab keinen Schimmer wie ich das angehen soll.

    Das ist der Methodenrumpf:

    Quellcode

    1. public static int numberToDec(final int base, final String number){
    2. //TODO
    3. return 0;
    4. }


    Kann mir da mal jemand auf die Sprünge helfen? Wäre top!

    MfG xlemmingx

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xlemmingx ()

  • Joa, halt immer die erste Stelle auswerten und dann die Stelle wegnehmen und die Methode rekursiv auf den Rest anwenden.

    PHP-Quellcode

    1. import java.lang.Math;
    2. public class HelloWorld {
    3. public static int numberToDec(final int base, final String number) {
    4. int length = number.length();
    5. if (length == 0) return 0;
    6. else {
    7. int digit = digitToDec(Character.toUpperCase(number.charAt(0)));
    8. int ret = (int)Math.pow(base,length-1) * digit;
    9. return ret + numberToDec(base,number.substring(1));
    10. }
    11. }
    12. public static int digitToDec(char number) {
    13. //65 = 'A', 90 = 'Z'
    14. if ((int)number >= 65 && (int)number <= 90) return (int)number - 55;
    15. else {
    16. int num = Character.digit(number,10);
    17. if (num >= 0 && num < 10) return num;
    18. else return 0;
    19. }
    20. }
    21. public static void main(String[] args) {
    22. System.out.println(numberToDec(16,"fF"));
    23. }
    24. }
    Alles anzeigen
    Wo ist der Discord Server

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von Skyte ()