... 아 죄송합니다. 팝콘은없고 POPCNT입니다.
최단 작성 프로그램 또는 기능 다수의 소요 n
및 출력 2 모두 0의 정수 n은 1, 순서 오름차순 - 수의 이진 표현에서 1 비트의 수 (popcount 참조). 중복은 허용되지 않습니다.
동일한 popcount를 가진 숫자의 순서는 구현에 따라 정의됩니다.
예를 들어의 경우 n = 3
다음의 모든 출력이 유효합니다.
0, 1, 2, 4, 3, 5, 6, 7
[0, 4, 1, 2, 5, 3, 6, 7]
0 4 2 1 6 5 3 7
입력 및 출력 형식은 언어 기능을 사용하여 코드를 더욱 발전시킬 수 있도록 구현 정의되어 있습니다. 출력에는 몇 가지 제한 사항이 있습니다.
- 숫자는 10 진수 형식으로 출력해야합니다.
출력은 숫자 사이에 적절한 구분 기호를 포함해야합니다 (트레일 구분 기호는 허용되지만 앞쪽에는 허용되지 않음).
라인 피드 (
\n
), 탭 (\t
), 공간,,
,.
,;
,|
,-
,_
,/
매우 합리적인 구분됩니다. 예쁜 인쇄를위한 추가 공간은 필요하지 않지만 문자 나 숫자를 구분 기호로 사용하지 마십시오.- 숫자와 세퍼레이터에 의해 포위 될 수있다
[ ]
,{ }
또는 배열이나리스트 표기법. - 위에 명시되지 않은 내용은 인쇄하지 마십시오.
보너스
솔루션에서 즉시 숫자를 생성 할 수 있으면 점수에 0.5를 곱하십시오 . 이 보너스의 핵심은 인쇄 솔루션을 생성기로 직접 변환하는 경우 생성기는 최대 O (n) 메모리 만 사용한다는 것입니다. 여기서 n은 위에 정의 된 비트 수입니다. 실제로 솔루션을 생성기로 변환 할 필요는 없습니다. n <= 28을 부과하는 동안 모든 숫자를 저장하는 데 필요한 메모리는 여전히 기하 급수적으로 증가하며 순진 정렬 솔루션은 n = 28에서 최소 4GB의 메모리를 차지합니다.
이 보너스를 청구하기 전에 솔루션 작동 방식에 대한 간단한 설명을 추가하십시오.