Maison >développement back-end >C++ >Pour tous les nombres binaires possibles de longueur n, la somme des deux moitiés est égale ?
Ici, nous verrons tous les nombres binaires possibles de n bits (n est donné par l'utilisateur) où la somme de chaque moitié est la même. Par exemple, si le nombre est 10001, ici 10 et 01 sont identiques car leur somme est la même et ils sont dans des moitiés différentes. Ici, nous allons générer tous les nombres de ce type.
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!