반응형
1부터 연속으로 숫자의 합을 구하기 위해서는 위와 같이 for문을 이용해서 구하면 된다.
def sumadd(n):
sum =0
for i in range(1, n+1):
sum = sum+i
return sum
print(sumadd(10))
하지만 우리는 중고등학교 때 수학시간에 1부터 n까지의 합의 공식을 배웠을 것이다 그 공식을 이용해서 다시짜보자
def sumadd(n):
for i in range(1 , n+1):
sum = n * (n+1) /2
return sum
print(sumadd(10))
이렇게 짜면 훨씬 더 간단하고 빠르게 구할 수 있을 것이다
Q. 1부터 n까지 연속한 숫자의 제곱의 합을 구하는 프로그램을 for 반복문으로 만들어보라.
def sumtest(n):
s = 0
for i in range(1,n+1):
a = (n-(n-i)) * (n-(n-i))
s = a+s
return s
print(sumtest(10))
이렇게 코드를 짠 이유는,
3까지 연속한 숫자의 제곱의 합을 구하는 프로그램을 생각해보면
1x1 + 2x2 + 3x3 이다
(n-2) (n-2) + (n-1)(n-1)+nn 이런식으로 진행되기 때문에 위와같이 진행했다.
반응형
'성장일기 > 알고리즘코드' 카테고리의 다른 글
[백준 5585문제] 그리디 알고리즘 - 거스름돈 ( python3) (0) | 2021.08.22 |
---|---|
[백준 11399문제] 그리디 알고리즘 - ATM ( python3) (0) | 2021.08.22 |
아톰에서 파이썬 한글 깨지는 현상 해결 방법 (0) | 2020.02.20 |