티스토리 뷰

문제

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

 

입출력 규칙

1. 입력

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

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

 


문제 풀이

<내 풀이1>

 

1) 반복문 for문 활용

 

for문을 활용하여, 입력받은 숫자까지 하나하나 더하는 코드이다. 

total=0
for i in range(int(input())+1):
    total += i # total = total + 1
print(total)

 

2) sum() 함수 활용

여러 개의 수를 더하는 sum() 함수를 이용하였다.

iterable 자료형을 생성하는 range함수를 이용해서 1부터 입력받은 숫자까지의 범위를 지정하였다.

print(sum(range(1,int(input())+1)))

 

 

<숏코딩>

 

1부터 n까지의 합을 구하는 등차수열 합 공식을 비트 연산자를 활용하였다. 

n =int(input())
print(n*-~n//2)

 

'~n' : 비트 연산자 NOT으로, 'n'의 비트가 반전된 값을 반환한다. 이는 '-(n+1)'과 같다.

'-~n' : 비트 연산자의 결과에 마이너스를 붙인 것이다. 이는 '-(~n)' 또는 'n+1'과 같은 결과 값을 가진다.

따라서, '-~n'은 'n+1'을 의미한다.

 

n = 3
print(~n) # -4
print(-~n) # 4

 

 

결국, 전체 수식 n * -~n // 2는 n * (n + 1) // 2와 동일하다.

이는 1부터 n까지의 합을 계산하는 공식입니다.

 

결국 아래와 동일하다. 

n =int(input())
print(n*(n+1)//2)

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함