본문 바로가기
프로그램

[파이썬] 문제 : 두 수 입력 받아 -,+ 반복 공식 계산(2-3+4-5+6)

by 오디세이99 2023. 1. 8.
728x90
반응형

(문제)

두 수를 입력받고 계산하는 코드.
예를 들어 2,6 입력 받으면 2-3+4-5+6 계산
8,4 입력받으면 8-7+6-5+4 계산하는 코드 좀 짜주세요
기초적인 코드로 만들기.

 

 

 

(방법)

s_in = input('두 수 입력 : ')       # , 로 분리된 두 정수 입력 받기
lst = s_in.split(',')               # , 로 분리해서 리스트 변수에 받기
no1 = int(lst[0])                   # 문자열로 된 값을 정수로 변환해서 변수에 저장
no2 = int(lst[1])

op = '-'                                 # -.+ 와 같은 반복에 대한 변수
result = no1                             # 최초 no1을 result에 반영. (2-3+4-5+6에서 2와 같음)
rslt_str = str(no1)                      # 만들어진 공식을 보여주기 위한 변수
if no1 < no2:                            # no1 이 no2 보타 큰 경우
    for i in range(no1+1, no2+1):       # no1은 계산에 반영되어 있으니 no1+1부터 시작. range는 end-1까지 하기 때문에 no2+1로 함.
        if op == '-':                    # op가 - 면 
            result -= i                  # 계산
            rslt_str += ' - ' + str(i)   # 계산 공식은 계속 추가
            op = '+'                     # op 연산자를 변경. -면 +로.
        else:
            result += i
            rslt_str += ' + ' + str(i)
            op = '-'                     # op 연산자를 변경. +면 -로.
elif no1 > no2:                            # no1 이 no2 보타 큰 경우
    for i in range(no1-1, no2-1, -1):   # 큰수에서 작은수로 하기때문에 step를 -1로 함. 큰수로 시작하기 때문에 no1-1로 시작.
        if op == '-':
            result -= i
            rslt_str += ' - ' + str(i)
            op = '+'
        else:
            result += i
            rslt_str += ' + ' + str(i)
            op = '-'

print('식 : ', rslt_str)
print('답 = ',result)

 

728x90
반응형

댓글