Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm số hạng thứ n của Trình tự đường cong rồng trong C ++

Ở đây chúng ta sẽ thấy một chương trình có thể tìm số hạng thứ n của dãy Đường cong Rồng. Chuỗi đường cong Rồng là một chuỗi nhị phân vô hạn. Nó bắt đầu bằng 1 và trong mỗi bước, nó thêm các số 1 và 0 vào trước và sau mỗi phần tử của thuật ngữ trước, để tạo thành thuật ngữ tiếp theo.

  • Kỳ 1:1
  • Kỳ 2:110
  • Kỳ 3:1101100
  • Kỳ 4:110110011100100

Chúng ta sẽ bắt đầu với 1, sau đó thêm 1 và 0, xen kẽ vào sau mỗi phần tử của số hạng trước. Khi thuật ngữ mới thu được trở thành thuật ngữ hiện tại, sau đó lặp lại các bước từ 1 đến n để tạo các thuật ngữ tiếp theo.

Ví dụ

#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);
}

Đầu ra

4th term of Dragon Curve Sequence: 110110011100100