Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 드래곤 커브 시퀀스의 n번째 항 찾기

<시간/>

여기서 우리는 Dragon Curve 시퀀스의 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