프로그래머는 종종 도형 그리기에 집착 합니다. 새로운 컴퓨터 기반 매체가 필요하다고 생각합니다.
H 트리 수평선과 수직선으로 이루어진 프랙탈의 비교적 간단한 형태이다. 다음은 열 번째 반복입니다 ( 예 : Wikipedia ).
이제 이미지의 각 줄이 표준 컴퓨터 파일 시스템의 디렉토리 (폴더)라고 상상해보십시오. 가장 작은 선을 제외한 모든 선은 두 선보다 작습니다. 이 두 개의 작은 라인은 큰 라인의 하위 디렉토리 입니다. 따라서 가운데의 큰 가로선은 두 개의 가장 큰 세로선의 부모 디렉토리이며, 이미지에서 나머지 선의 부모, 조부모 등입니다.
도전
stdin 또는 명령 줄 (또는 가장 가까운 대안)을 통해 양의 정수 N을 취하고 H 트리 프랙탈의 N 번째 반복을 반영하는 디렉토리 트리를 작성하는 프로그램을 작성하십시오.
첫 번째 반복 (N = 1)은 단일 수평선입니다. 각각의 후속 반복에서 새로운 수직 또는 수평 라인 세트가 현재 라인의 끝에 추가됩니다. 따라서 N = 2의 경우 두 개의 수직선이 추가되고 (H 모양 만들기) N = 3의 경우 4 개의 수평선이 추가됩니다.
루트 디렉토리의 이름은 항상이어야합니다 tree
. 하위 디렉토리의 이름은 사용, 상위 라인에 대한에있는 방향과 일치해야합니다 right
, left
, up
와 down
.
루트 디렉토리는 항상 수평선이므로 항상 right
및 left
서브 디렉토리를 갖습니다 . 그러나이 두 가지는 하위 디렉토리 를 가지게 up
되며 down
, 그 하위 디렉토리도 계속 right
해서 계속 left
됩니다.
반복 한계 끝에있는 디렉토리는 비워 두어야합니다.
예
N = 3의 경우 디렉토리 트리는 다음과 같아야합니다.
tree
right
up
down
left
up
down
추가 정보
tree
소스 코드와 동일한 폴더에 디렉토리가 표시되는 것이 이상적 이지만 작업 디렉토리로 가면 괜찮습니다.- 당신은
tree
당신이 만들어 질 장소에 기존 디렉토리 가 없다고 가정 할 수 있습니다 . - 프로그램이 항상 동일한 최신 운영 체제 (Mac / Windows / Linux)에서 실행된다고 가정 할 수 있습니다. 기본적으로 모든 OS에서 작동하지 않는 파일 구분 기호를 사용하는 것에 대해 걱정하지 마십시오.
tree
항상은해야left
하고right
대신에up
와down
?