Binary Gap-Programm in JavaJava

Java-Forum
Anonymous
 Binary Gap-Programm in Java

Post by Anonymous »

Meine Problemstellung:


Eine binäre Lücke innerhalb einer positiven ganzen Zahl N ist jede maximale Folge aufeinanderfolgender Nullen, die in der binären Darstellung von N an beiden Enden von Einsen umgeben ist. Beispielsweise hat die Zahl 9 die binäre Darstellung 1001 und enthält eine binäre Lücke der Länge 2. Die Zahl 529 hat die binäre Darstellung 1000010001 und enthält zwei binäre Lücken: eine mit der Länge 4 und eine mit der Länge 3. Die Zahl 20 hat die binäre Darstellung 10100 und enthält eine binäre Lücke der Länge 1. Die Zahl 15 hat die binäre Darstellung 1111 und weist keine binären Lücken auf. Die Zahl 32 hat die binäre Darstellung 100000 und weist keine binären Lücken auf.


Mein Code:

Code: Select all

public class Abc {

static void decToBinary(int n) {

int[] binaryNum = new int[1000];

// counter for binary array
int i = 0;
while (n > 0) {
// storing remainder in binary array
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
int ctr = 0, k = 0;
ArrayList al = new ArrayList();

// printing binary array in reverse order
for (int j = i - 1; j >= 0; j--) {
System.out.print(binaryNum[j]);
if (binaryNum[j] == 0) {
k = j;
do {
ctr++;
k++;
} while (binaryNum[k] == 0);
al.add(ctr);
ctr = 0;
}
}

for (int ii = 0; ii < al.size(); ii++) {
System.out.println(al.get(ii));
}
}

// driver program
public static void main(String[] args) {
int n = 1041;
decToBinary(n);
}
}
Ich versuche, die Ausgabe der binären Lücke anzuzeigen, die in meiner ArrayList gespeichert ist. Aber die Ausgabe ist für eine gegebene Eingabe von 1041 ganz anders. Ich weiß nicht, warum sie 1,2,3,4 speichert; Nach meiner Logik sollte es bei Eingabe:1041 nur die Lückenwerte 5 und 3 speichern, obwohl 5 und 3 auch in der ArrayList gespeichert sind, aber an einem anderen Index.

Ich denke, es gibt ein Problem in der do-while-Schleife, insbesondere in al.add(ctr), aber ich habe es noch nicht herausgefunden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post