ที่นี่เราจะเห็นโปรแกรมที่สามารถหาเทอมที่ n ของลำดับ Dragon Curve ลำดับเส้นโค้งมังกรเป็นลำดับเลขฐานสองอนันต์ โดยเริ่มต้นด้วย 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