728x90

https://www.acmicpc.net/problem/8393

 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

문제)

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

입력)

첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.

출력)

1부터 n까지 합을 출력한다.

 

풀이)

풀이1)

n=int(input())
a=0 #임의로 정한 변수의 값을 0으로 지정해줌
for i in range(1, n+1): #1부터 n까지의 합이라고 했으니, range의 범위는 n+1가 된다. 1부터 n까지 i에 대입
    a+=i #a에 i의 값을 누적해서 더하겠다.
print(a)

범위가 range(1, n+1)이나 range(n+1)이 상관 없는 이유는 1부터 n까지의 합이라고 했을때, 

range(1, n+1)은 식 그대로 1~n까지의 범위라는 뜻이고

range(n+1)은 0~n까지의 범위라는 것인데, 어차피 둘다 더하면 0은 상관없기 때문이다.

a+=i로 써도 되고, a=a+i로 써도 전혀 지장이 없다.

풀이2)

n=int(input())
a=0
for i in range(n+1):
    a+=i
print(a)

풀이3)

n=int(input())
print(n*(n+1)//2) #정수의 몫만 출력하기 위해서 //을 사용

for문을 사용하지 않고, 1부터 n까지의 정수의 합 공식은 n*(n+1)/2이다.

728x90