Heim > Backend-Entwicklung > C++ > Hauptteil

Übersetzen Sie im C-Programm die Baum-Sweet-Sequenz

王林
Freigeben: 2023-08-26 22:17:02
nach vorne
1191 Leute haben es durchsucht

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

Hier sehen wir die Baum Sweet-Sequenz. Die Sequenz ist eine binäre Sequenz. Wenn die Zahl n eine ungerade Anzahl aufeinanderfolgender Nullen hat, ist das n-te Bit 0, andernfalls ist das n-te Bit 1.

Wir haben eine natürliche Zahl n. Unsere Aufgabe ist es, den n-ten Term der Baum-Sweet-Folge zu finden. Wir müssen also prüfen, ob es aufeinanderfolgende Nullenblöcke ungerader Länge enthält.

Wenn die Zahl 4 ist, ist dieser Term 1, weil 4 100 ist. Es hat also zwei (gerade) Nullen.

Algorithmus

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
Nach dem Login kopieren

Beispiel

#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);
}
Nach dem Login kopieren

Ausgabe

1
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonÜbersetzen Sie im C-Programm die Baum-Sweet-Sequenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage