본문 바로가기
프로그램

[파이썬] 문제 : 시작,끝 수 입력 받아 합계 구하기

by 오디세이99 2024. 5. 14.
728x90
반응형

# 5-2
n1 = int(input('첫 번째 숫자를 입력하세요 : '))   # 입력 받기. input()은 문자열로 받기 때문에 int()로 정수로 변환
n2 = int(input('두 번째 숫자를 입력하세요 : '))
s = int(input('더할 숫자를 입력하세요 : '))

d_sum = 0                        # 합계 결과 변수 선언
ss = ''                          # 출력시 사용할 문자열 변수 선언
cnt = 0                          # ss 에 1,2번째 숫자만 사용하기 위한 카운터로 사용할 변수 선언

# range(start, end, step) 구조. range(10)과 같이 1개만 있으면 end만 지정항 것으로 start=0, step=1로 됨.
# 여기서 n은 start부터 end-1 까지 step으로 건너뛰면서 가지게 됨. 
# 그래서 end까지 나오게 하기 위해 end+1 함
for n in range(n1, n2+1, s):     # start : n1, end : n2+1, step : s. 1,100+1,3 하면 1,4,7..과 같이 n이 가지게 됨
    cnt += 1                     # 문자열로 사용할 카운트 +1 해줌
    d_sum += n                   # for 문의 n 이 start~end까지 step으로 건너뛰며 나오기 때문에 n을 누적하면 됨
    if cnt <= 2:                 # 처음 2번만 사용하기 위함. '1+4+...100는 1717입니다.'에서 1+4+를 만들기 위함
        ss += str(n) + '+'       # 문자열로 만듬
    
ss += '...' + str(n2)            # '1+4+...100는 1717입니다.'에서 ...100 을 만들어줌
print(f"{ss}는 {d_sum}입니다.")   # 결과 출력

728x90
반응형

댓글