Maison > développement back-end > C++ > le corps du texte

Dans le programme C, traduisez la séquence Baum Sweet

王林
Libérer: 2023-08-26 22:17:02
avant
1191 Les gens l'ont consulté

在C程序中,将Baum Sweet序列进行翻译

Ici, nous verrons la séquence Baum Sweet. La séquence est une séquence binaire. Si le nombre n a un nombre impair de 0 consécutifs, alors le nième bit sera 0, sinon le nième bit sera 1.

Nous avons un nombre naturel n. Notre tâche est de trouver le nième terme de la séquence Baum Sweet. Il faut donc vérifier s’il comporte des blocs consécutifs de zéros de longueur impaire.

Si le nombre est 4, ce terme sera 1 car 4 vaut 100. Il y a donc deux zéros (pairs).

Algorithme

BaumSweetSeqTerm (G, s) -

begin
   define bit sequence seq of size n
   baum := 1
   len := number of bits in binary of n
   for i in range 0 to len, do
      j := i + 1
      count := 1
      if seq[i] = 0, then
         for j in range i + 1 to len, do
            if seq[j] = 0, then
               increase count
            else
               break
            end if
         done
         if count is odd, then
            baum := 0
         end if
      end if
   done
   return baum
end
Copier après la connexion

Exemple

#include <bits/stdc++.h>
using namespace std;
int BaumSweetSeqTerm(int n) {
   bitset<32> sequence(n); //store bit-wise representation
   int len = 32 - __builtin_clz(n);
   //builtin_clz() function gives number of zeroes present before the first 1
   int baum = 1; // nth term of baum sequence
   for (int i = 0; i < len;) {
      int j = i + 1;
      if (sequence[i] == 0) {
         int count = 1;
         for (j = i + 1; j < len; j++) {
            if (sequence[j] == 0) // counts consecutive zeroes
               count++;
            else
               break;
         }
         if (count % 2 == 1) //check odd or even
            baum = 0;
      }
      i = j;
   }
   return baum;
}
int main() {
   int n = 4;
   cout << BaumSweetSeqTerm(n);
}
Copier après la connexion

Sortie

1
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!

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