Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

10진수 8진수 16진수와 처음 n개 숫자의 이진수를 인쇄하는 파이썬 프로그램

<시간/>

값 n이 있다고 가정합니다. 4개의 다른 열에 처음 n개의 숫자(1에서 n까지)에 해당하는 Decimal, Octal, Hexadecimal 및 Binary를 인쇄해야 합니다. 우리가 알다시피, 우리는 10진수, 8진수, 16진수 및 10진수에 대해 각각 접두사 문자 d, o, X 및 b를 사용하여 숫자를 표현할 수 있습니다.

따라서 입력이 n =10과 같으면 출력은 다음과 같습니다.

1 1 1 12 2 2 103 3 3 114 4 4 1005 5 5 1016 6 6 1107 7 7 1118 10 8 10009 11 9 100110 12 A> 1010
이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • l :=(n에 해당하는 이진 길이) - 2
  • 1~n 범위의 i에 대해
    • f :=빈 문자열
    • "doXb"의 각 문자 c에 대해 do
      • f가 비어 있지 않으면
        • f :=f 공백 하나 연결
      • f :=f + l을 문자열로 변환한 다음 c를 연결하여 오른쪽 정렬 형식화 문자열
    • 포맷된 문자열 f에 i를 네 번 전달하고 줄을 인쇄합니다.

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

def solve(n):l =len(bin(n)) - 2 in range(1, n + 1):f ="" for c in "doXb":if f:f +=" " f +="{:>" + str(l) + c + "}" print(f.format(i, i, i, i))n =10solve(n)

입력

10

출력

1 1 1 12 2 2 103 3 3 114 4 4 1005 5 5 1016 6 6 1107 7 7 1118 10 8 10009 11 9 100110 12 A> 1010