Ở đâ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