-
[Python_Algorithm]반복하는 알고리즘(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2020. 12. 30. 05:15
1부터 n까지 정수의 합 구하기
# 1부터 n까지 정수의 합 구하기 (while문) print('1부터 n까지 정수의 합을 구합니다.') n = int (input('n을 입력하세요')) sum = 0 i = 1 while i <= n : # i가 n보다 작거나 같은 동안 반복 sum += i # sum에 i를 더함 i += 1 # i 에 1을 더함 print(f'1부터 {n}까지 정수의 합은 {sum}입니다.') print(f'i값은 {i}입니다')
결과
i의 값이 n값을 초과해샤 반복을 마칠 수 있기 때문에 i 는 n보다 1이 많다.
# 1부터 n까지 정수의 합 구하기 (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}입니다.')
결과
반복구조
어떤 조건이 성립하는 동안 반복해서 처리하는 것, 일반적으로 루프(loop)라고 함
가우스 덧셈
# 가우스 덧셈 n = int(input()) sum = n*(n + 1) // 2 # //은 몫 연산자 print(sum)
range() 함수로 이터러블 객체 생성하기
range(n) : 0 이상 n 미만인 수를 차례로 나열하는 수열
range(a,b) : a 이상 b 미만인 수를 차례로 나열하는 수열
ranger(a,b,step) : a 이상 b 미만인 수를 step 간격으로 나열하는 수열연속하는 정수의 합을 구하기 위해 값 정렬하기
# a부터 b 까지 정수의 합 구하기 (for) print('a부터 b까지의 합을 구합니다') a = int(input('a값을 입력하세요')) b = int(input('b값을 입력하세요')) if a>b: a,b = b,a # a 가 b 보다 크다면 a를 bf로, b를 a로 하라! sum = 0 for i in range(a,b) : sum += i # sum 에 i를 더함 print(f'{a}부터 {b}까지 정수의 합은 {sum}입니다.')
a = 3, b = 5
a = 5, b = 3
반복 과정에서 조건 판단하기 1
# a부터 b까지 정수의 합 구하기 print('a부터 b까지 정수의 합을 구합니다.') a = int(input('정수 a를 입력하세요.:')) b = int(input('정수 b를 입력하세요.:')) if a > b: a,b = b,a sum = 0 for i in range(a,b+1): if i < b: print(f'{i} + ',end = '') else : print(f'{i} = ',end = '') sum += i print(sum)
print(f'{i} + ',end = '') -> 진행 중인 값(i) 뒤에 + 를 출력
print(f'{i} = ',end = '') -> 최종 값 뒤에 = 를 출력
위의 방식에서는 해당 구문이 반복되는 만큼 '='이 계산되어진다. 마지막 한번만 계산하면 되는데 비효율적이다.
# a 부터 b까지 정수의 합 구하기 2 print('a부터 b까지 정수의 합을 구합니다') a = int(input('정수 a를 입력하세요.:')) b = int(input('정수 b를 입력하세요.:')) if a > b: a,b = b,a sum = 0 for i in range(a,b): print(f'{i} + ',end = '') sum += i #sum에 i를 더함 print(f'{b} = ', end ='') sum += b #sum 에 b를 더함 print(sum)
이렇게 '=' 부분을 바깥으로 빼면 한번만 나오면 된다.
'Python > Algorithm' 카테고리의 다른 글
[Python_Algorithm]직사각형 넓이로 변의 길이 구하기(자료구조와 함께 배우는 알고리즘 입문) (0) 2021.01.12 [Python_Algorithm]양수만 입력 받기(자료구조와 함께 배우는 알고리즘 입문) (0) 2021.01.10 [Python_Algorithm]반복 과정에서 조건 판단하기 3(자료구조와 함께 배우는 알고리즘 입문) (2) 2021.01.09 [Python_Algorithm]반복 과정에서 조건 판단하기2(자료구조와 함께 배우는 알고리즘 입문) (2) 2021.01.05 [Python_Algorithm]알고리즘 기초(자료구조와 함께 배우는 알고리즘 입문) (0) 2020.12.30