본문 바로가기

Programming/[자료구조, 알고리즘]

[Python]1부터 n까지 정수의 합 구하기

반응형

1부터 n까지 정수의 합을 구하는 알고리즘을 살펴보겠습니다.

1+2+~+n 값을 구해보겠습니다.

 

 

실습)1-7

# 1부터 n까지 정수의 합 구하기1 (while문)

print('1부터 n까지 정수의 합을 구합니다.')
n = int(input('n값을 입력하세요.: '))

sum = 0
i = 1

while i <= n:
  sum = sum + i    # sum += 1
  i = i + 1        # i += 1


print(f'1부터 {n}까지 정수의 합은 {sum}입니다.')
1부터 n까지 정수의 합을 구합니다.
n값을 입력하세요.: 5
1부터 5까지 정수의 합은 15입니다.

※ 어떤 조건이 성립하는 동안 반복해서 처리하는 것을 반복 구조(repetition structure) 라고 하고 일반적으로 루프(loop) 라고 합니다.

 

이때 while문은 실행 전에 반복을 계속할 것인지를 판단하는데 이런 구조를 사전 판단 반복 구조라고 합니다.

 

while 조건식: 명령문

 

위 구문에서 반복 대상이 되는 명령문을 루프 본문이라고 합니다.

 

 

for문 반복 알아보기

 

변수가 하나만 있을 때는 while 문보다 for문을 사용하는 것이 좋습니다.

 

실습)1-8

 

# 1부터 n까지 정수의 합 구하기2 (for문)

print('1부터 n까지 정수의 합을 구합니다.')
n = int(input('n값을 입력하세요.: '))

sum = 0
for i in range(1, n+1):
    sum += i # sum에 i를 더함


print(f'1부터 {n}까지 정수의 합은 {sum}입니다.')
1부터 n까지 정수의 합을 구합니다.
n값을 입력하세요.: 5
1부터 5까지 정수의 합은 15입니다.

 

가우스의 덧셈으로도 1부터 n까지 정수의 합을 구할 수 있습니다.

# 1부터 n까지 정수의 합 구하기3 (가우스의 덧셈)

print('1부터 n까지 정수의 합을 구합니다.')
n = int(input('n값을 입력하세요.: '))

sum = n*(n+1)//2

print(f'1부터 {n}까지 정수의 합은 {sum}입니다.')

//는 몫 연산자(floor division)입니다.  즉, 숫자를 나눈 몫을 구해줍니다.

참고로 %는 나머지 연산자로 A를 B로 나누었을 때 남은 나머지를 구합니다.

1부터 n까지 정수의 합을 구합니다.
n값을 입력하세요.: 5
1부터 5까지 정수의 합은 15입니다.

 

 

반응형