728x90
https://www.acmicpc.net/problem/8393
문제)
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
'프로그래밍 > Python(파이썬)' 카테고리의 다른 글
[백준] 2741: N찍기-python[파이썬] (0) | 2022.03.24 |
---|---|
[백준] 15552: 빠른 A+B -python[파이썬] (0) | 2022.03.24 |
[백준] 10950: A+B-3 -python[파이썬] (0) | 2022.03.24 |
[백준] 2739: 구구단-python[파이썬] (0) | 2022.03.24 |
[코드업:Code Up] 코드업 파이썬 기초 100제 6061~6070[python] (0) | 2022.03.24 |