티스토리 뷰

반응형

www.acmicpc.net/problem/1789

 

1789번: 수들의 합

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 수학

 


 

⊙ 문제 접근 과정

 

1부터 n까지의 공식인 n*(n+1)/2를 이용하면 짧은 줄로 풀 수 있다.

하지만 퉁이리는 for문을 사용했다.

 

int로 계속 사용해서 오답이라구 나왔었는데 long long type으로 변경해주니 바로 해결할 수 있었다.

혹시 정답이 맞는데 틀리다고 계속 나온다면 type을 의심해보자.


 

⊙ 문제 풀이

 

#include <iostream>

using namespace std;
typedef long long ll;

int main() {
    ll s;
    cin>>s;

    ll total=0;
    ll temp;

    for(auto i=1;i<1e9;i++) {
        total+=i;
        if(total>=s) {
            temp=i; 
            break;
        }
    }

    if(total==s)
        cout<< temp;
    else
        cout<< temp-1;

}

⊙ 결과

 


⊙ 마무리

 

 

NONE

 

좋아요 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함