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!