用 C++ 查詢龍曲線序列的第 n 項


這裡我們將看到一個程式,它可以找到龍曲線序列的第 n 項。龍曲線序列是一個無限二進位制序列。它以 1 開始,在每一步中,它交替在上一項的每個元素之前和之後新增 1 和 0,以形成下一項。

  • 項 1:1
  • 項 2:110
  • 項 3:1101100
  • 項 4:110110011100100

我們將從 1 開始,然後交替新增 1 和 0,緊隨前一項的每個元素之後。當獲得的新項變成當前項時,然後重複從 1 到 n 的步驟來生成下一項。

示例

 即時演示

#include <iostream>
using namespace std;
string dragCurveTerm(int n) {
   string term = "1";
   for (int i = 2; i <= n; i++) {
      string temp = "1";
      char prev = '1', zero = '0', one = '1';
      for (int j = 0; j < term.length(); j++) {
         temp += term[j]; //take character from original string
         if (prev == '0') {
            temp += one;
            prev = one;
         } else {
            temp += zero;
            prev = zero;
         }
      }
      term = temp;
   }
   return term;
}
int main() {
   cout << "4th term of Dragon Curve Sequence: " << dragCurveTerm(4);
}

輸出

4th term of Dragon Curve Sequence: 110110011100100

更新時間: 2019 年 10 月 21 日

166 次瀏覽

開啟你的職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.