Maison > développement back-end > C++ > Pour tous les nombres binaires possibles de longueur n, la somme des deux moitiés est égale ?

Pour tous les nombres binaires possibles de longueur n, la somme des deux moitiés est égale ?

WBOY
Libérer: 2023-09-03 13:21:11
avant
1144 Les gens l'ont consulté

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
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal