用 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
广告