Home > Study > C Language > C Example > [ex56] 마지막 정수 찾기

[ex56] 마지막 정수 찾기
Study Language

문제 설명


1개의 정수 n을 입력 받아 1+2+3… +x 의 합계가 n이상이 되면 마지막 더한 수 x를 구하여 인쇄한다.
( 1+2+3… +x >= n 의 조건이며 n은 양의 정수임 )

#include <stdio.h>

int Solve(int n)
{
	//여기서 부터 작성
}
int main(void)
{
	int n;
	scanf("%d", &n);

	printf("%d\n", Solve(n));

	return 0;
}

입력 설명


첫째 줄에 양의 정수 n(1<=n<=10억)이 입력된다

출력 설명


1+2+3… +x >= n을 만족하는 제일 작은 x를 출력한다

입력 예시


2500

출력 예시


71

정답 코드


#include <stdio.h>
 
/*
 
int Solve(int n)
{
    int sum = 0, i;
     
    for (i = 1; sum < n; i++)
    {
        sum += i;
    }
     
    return i - 1;
}
 
*/
 
int Solve(int n)
{
    int sum = 0;
    int v = 1;
     
    for(;;)
    {
        sum += v;
        if(sum >= n) return v;
        v++;
    }
}
 
int main(void)
{
    int n;
    scanf("%d", &n);
    printf("%d\n", Solve(n));
    return 0;
}

메모


printf 내부의 \n 습관화 필요