본문 바로가기
스피커

[파이썬] 문제 : 325 * 7과 같이 3자리, 한자리 정수의 곱셈 풀이 출력

by 오디세이99 2023. 4. 11.
728x90
반응형

opnd1 = int(input('피연산자1 : '))     # 입력
opnd2 = int(input('피연산자2 : '))

opnd1_lst = [str((opnd1//100) * 100), str((opnd1//10%10) * 10), str(opnd1%10)]  # opnd1을 100자리, 10자리, 일자리로 분리

print(f"= ({' + '.join(opnd1_lst)}) * {str(opnd2)}")  # (300 + 20 + 5) * 7 같은 출력
ss = ""                           # 각각 분리된 양식 변수
ss2 = ""                          # 각각 분리된 후 계산된 변수
for i in range(len(opnd1_lst)):  # 각각 분리하기 위한 반복
    ss += opnd1_lst[i]           # 300을 문자열에 붙임
    if i < len(opnd1_lst)-1:     # 마지막 요소가 아니면
        ss += " * "              # '*' 붙임
        ss += str(opnd2)         # 7을 붙임

    ss2 += str(int(opnd1_lst[i]) * int(opnd2))   # 각각 분리된 계산결과 붙임
    if i < len(opnd1_lst)-1:     # 마지막 요소가 아니면
        ss += ' + '               # 이번에는 '+' 붙임
        ss2 += ' + '              # 각각 분리된 결과에도 '+' 붙임
ss += ' * ' + str(opnd2)          # 마지막 '*' 와 7을 붙임
print(f"= {ss}")                  # 출력
print(f"= {ss2}")
print(f"= {opnd1 * opnd2}")

opnd1 = int(input('피연산자1 : '))     # 입력
if opnd1 >= 100 and opnd1 <= 999:
    opnd2 = int(input('피연산자2 : '))
    if opnd2 >= 1 and opnd2 <= 9:
        opnd1_lst = [str((opnd1//100) * 100), str((opnd1//10%10) * 10), str(opnd1%10)]  # opnd1을 100자리, 10자리, 일자리로 분리

        print(f"= ({' + '.join(opnd1_lst)}) * {str(opnd2)}")  # (300 + 20 + 5) * 7 같은 출력
        ss = ""                           # 각각 분리된 양식 변수
        ss2 = ""                          # 각각 분리된 후 계산된 변수
        for i in range(len(opnd1_lst)):  # 각각 분리하기 위한 반복
            ss += opnd1_lst[i]           # 300을 문자열에 붙임
            if i < len(opnd1_lst)-1:     # 마지막 요소가 아니면
                ss += " * "              # '*' 붙임
                ss += str(opnd2)         # 7을 붙임

            ss2 += str(int(opnd1_lst[i]) * int(opnd2))   # 각각 분리된 계산결과 붙임
            if i < len(opnd1_lst)-1:     # 마지막 요소가 아니면
                ss += ' + '               # 이번에는 '+' 붙임
                ss2 += ' + '              # 각각 분리된 결과에도 '+' 붙임
        ss += ' * ' + str(opnd2)          # 마지막 '*' 와 7을 붙임
        print(f"= {ss}")                  # 출력
        print(f"= {ss2}")
        print(f"= {opnd1 * opnd2}")
    else:
        print('opnd1 입력 오류')
else:
    print('opnd2 입력 오류')
728x90
반응형

댓글