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