성장일기/알고리즘코드

[파이썬코드] 1부터 n까지의 합 구하기 , 제곱의 합 구하기

지추월자 2020. 2. 20. 14:58
반응형

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 이런식으로 진행되기 때문에 위와같이 진행했다. 

 

반응형