Heim  >  Artikel  >  Backend-Entwicklung  >  Für alle möglichen Binärzahlen der Länge n ist die Summe der beiden Hälften gleich?

Für alle möglichen Binärzahlen der Länge n ist die Summe der beiden Hälften gleich?

WBOY
WBOYnach vorne
2023-09-03 13:21:111074Durchsuche

Für alle möglichen Binärzahlen der Länge n ist die Summe der beiden Hälften gleich?

Hier sehen wir alle möglichen Binärzahlen mit n Bit (n wird vom Benutzer angegeben), bei denen die Summe jeder Hälfte gleich ist. Wenn die Zahl beispielsweise 10001 ist, sind 10 und 01 gleich, weil ihre Summe gleich ist und sie in unterschiedlichen Hälften liegen. Hier werden wir alle Zahlen dieses Typs generieren

Begin
   if n is 0, then
      if diff is 0, then
         print left + right
      end if
      return
   end if
   if n is 1, then
      if diff is 0, then
         print left + 0 + right
         print left + 1 + right
      end if
      return
   end if
   if 2* |diff| <= n, then
      if left is not blank, then
         genAllBinEqualSumHalf(n-2, left + 0, right + 0, diff)
         genAllBinEqualSumHalf(n-2, left + 0, right + 1, diff-1)
      end if
      genAllBinEqualSumHalf(n-2, left + 1, right + 0, diff + 1)
      genAllBinEqualSumHalf(n-2, left + 1, right + 1, diff)
   end if
End

Das obige ist der detaillierte Inhalt vonFür alle möglichen Binärzahlen der Länge n ist die Summe der beiden Hälften gleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen