문제1186--[기초-종합] 거기까지! 이제 그만~(설명)(C)

1186: [기초-종합] 거기까지! 이제 그만~(설명)(C)

[만든사람 : 전현석, 정종광(채점데이터 및 확인), 배준호(확인), 최웅선(확인), 김지혜(그림) (2013)]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

본 문제는 C 의 빠른 기초 학습을 위해 설계된 문제로서 C 코드 제출을 기준으로 설명되어 있습니다.
------

정수 1개(n)를 입력받는다. 

1, 2, 3, ... 을 하나씩 계속 더해가면서 합을 만드는데, 
그 합이 입력된 값(n)과 같거나 입력된 값(n)보다 커졌을 때, 그 때의 합을 출력해 보자. 

예를 들어, 57 을 입력하면
1 + 2 + 3 + ... + 8 + 9 + 10 = 55 에서 그 다음 수 11 을 더해 66 이 되면,
그 때의 합 66 을 출력하면 된다. 
예시
...
int n, i, s=0;
scanf("%d", &n);
for(i=1; ; i++)    //for 반목문에서 가운데의 조건이 빠진 경우 무한 반복된다.
{
  s+=i;
  if(s>=n)
    break;           //참이면, 가장 가까운 반복 코드블록의 밖으로 빠져나간다.
}                       //break; 가 실행되면 반복을 중단하고 여기로 빠져 나온다.
printf("%d", s);
...


참고
반복 실행 구조 안에서 break 가 실행되면,
반복 실행을 중단(break)하고, 가장 가까운 반복 블록을 빠져 나간다.

무한 반복이 되는 코드는
while(1) {...}, do {...}while(1); 등도 가능하다.
0이 아니면 모두 참(true)으로 인식되기 때문이다.

입력 설명

정수 1개(n)가 입력된다.
(0<=n<=100000000) 

출력 설명

1, 2, 3, ... 을 하나씩 계속 더해가면서 합을 만드는데, 
그 합이 입력된 값(n)과 같거나, 입력된 값(n)보다 커졌을 때, 그 때의 합을 출력한다. 

입력 예시 Copy

57

출력 예시 Copy

66

도움

기초100제(c)1 v1.5 : 정보교사 커뮤니티 @컴퓨터과학사랑(CSL)
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.

출처/분류