python; 3 6 9가 포함된 수를 별로 나타내기

    def digitcf(num):
        return list(map(int, str(num)))
    
    ct = 0
    
    for i in range(1, 50):
        for j in range(0, len(digitcf(i))):
            if digitcf(i)[j] == 3 or digitcf(i)[j] == 6 or digitcf(i)[j] == 9:
                ct += 1
        if ct != 0:
            print(i, "=", "*"*ct)
        else:
            print(i, "=", i)
        ct = 0

     

    def Check369(num):
        resultV = []
        i = 0
        while(num != 0):
            resultV.insert(-i, num % 10)
            num = num//10
            i += 1
        return resultV

    위 함수는 digitcf와 같은 내용 출력(C느낌(?))

     

    def digitcf(num):
        return list(map(int, str(num)))
    
    
    ct = 0
    
    for i in range(1, 50):
        d = digitcf(i).count(3)+digitcf(i).count(6)+digitcf(i).count(9)
        if d == 0:
            print(i, '=', i)
        else:
            print(i, "=", "*"*d)​

    위 코드는 좀 더 파이썬 느낌(?)

     

     

    1.

    digitcf라는 함수로 입력받은 수를 자릿수별로 배열에 저장.

    2.

    첫번째 for문: 몇 번까지 나타낼 것인가,

    두번째 for문: (1)에서 자릿수 별로 배열에 저장한 것 중 3,6,9가 포함되었는지 확인, 맞다면 카운트 하기.

    3.

    카운트 된 갯수가 0이라면 숫자를 그대로 출력, 0이 아니라면 *을 ct개 만큼 출력

     

     

     

     

    댓글