문제 설명
1, 2, 3 ... 을 순서대로 계속 더해 합을 만드는데,
그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자.
즉, 1부터 n까지 정수를 하나씩 더해 합을 만드는데,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.
하지만, 이번에는 그 때 까지의 합을 출력해야 한다.
예를 들어, 57을 입력하면
1+2+3+...+8+9+10=55에서 그 다음 수인 11을 더해 66이 될 때,
그 값 66이 출력되어야 한다.
입력
언제까지 합을 계산할 지, 정수 1개를 입력받는다.
단, 입력되는 자연수는 100,000,000이하이다.
출력
1, 2, 3, 4, 5 ... 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우,
그때까지의 합을 출력한다.
입력 예시
57
출력 예시
66
My code
n = int(input())
sum = 0
i = 0
while sum<n:
sum = sum+i
i+=1
print(sum)
Answer
a=int(input())
s=0
c=0
while True:
s=s+c
c=c+1
if s>=a:
break
print(s)
Code Review
1,2,3,... 순서대로 정수를 하나씩 증가시켜가도록 i 에 1씩 더해주었습니다. 이렇게 하나씩 증가하는 정수들을 계속 반복문을 이용해 더해주었습니다. 만약, 그 합이 입력된 정수보다 커지거나 같아지는 경우 반복문이 종료되도록 조건식을 작성해주었습니다. 반복문이 종료 된 후 모두 더한 합을 출력해주었습니다.
댓글