Du brauchst also Wertzuweisung, Vergleich, Indizierung, Addition/Subtraktion, Multiplikation, Prozeduraufruf.
Der Parameter binary, also der String mit der Binärzahl, hat ja eine bestimmte Länge
=
Stellenanzahl der Binärzahl
0101 wären 4 Stellen, 111 nur 3. Ganz normale Stellenanzahl.
Je nach Länge braucht der Code verschieden viele Zuweisungen etc.
Man soll jetzt eine allgemeine Formel zur Berechnung der Zuweisungsanzahl etc.angeben.
Da man beim "Allgemein" die Länge der Binärzahl ja noch nicht weiß,
sagen wir einfach, wir haben eine n-stellige Binärzahl.
(Die Formel muss dann für jede Länge gelten, die man dann eben für n einsetzt)
Um einfach mal mt Indizierung anzufangen:
Wie oft wird auf ein Arrayelement bla[blub] mit diesen eckigen Klammern zugegriffen?
Codezeile 1: Ist ja nur der Funktionskopf, der tut nichts.
Zeile 2: Keine Indexzugriff
Zeile 3: nop, auch nicht (Das [] ist hier nur zur Kennzeichnung, dass das ein Array ist.
Ein tatsächlicher Elementzugriff findet nicht statt)
Zeile 4 ist jetzt eine Schleife.
Wenn man etwas raufschaut, i=0
Bis i<binary.length
Also geht die Schleife so oft durch, wie die Binärzahl Stellen hat (wäre math. gesehen das n)
Zeile 5 wird daher nicht einmal, sondern n-mal ausgeführt, bei einer n-stelligen Binärzahl.
Allerdings ist auch kein Indexzugriff in Zeile 5, daher egal für uns.
Zeile 6 hat jetzt aber einen. Erster Indexzugriff gefunden
Da Z6 auch noch in der Schleife ist, ists nicht einer, sondern n Stück
...auf die Weise weiter bis zum Ende (kein weiterer Indexzugriff).
Insgesamt wurden also n Zugriffe gefunden, bei einer n-stelligen Binäzahl.
Das wärs, für den Indexteil.
Prozeduraufruf:
Man hat einen in Zeile 3. =1 Aufruf
Dann noch einen in Zeile 6, der allerdings in der Schleife ist, die n-mal durchgeht. =n Aufrufe
Insgesamt gibts also n+1 Prozeduraufrufe.
Multiplikation überlass ich jetzt dir

Zum Rest schreib ich dann noch was, ist etwas komplizierter
(eigentlich nicht, aber man übersieht nur leicht was)