맛있는감귤

BOJ : 6378 디지털 루트 본문

알고리즘/백준 알고리즘

BOJ : 6378 디지털 루트

맛있는감귤 2017. 1. 19. 03:56

문제 : https://www.acmicpc.net/problem/6378

출처 

    ACM-ICPC Regionals North America Greater New York Region 2000 Greater New York Programming Contest C번

    입력 N의 각 자리수의 값을 더해 나온 값이 한 자리 숫자가 될 때까지 반복하는 문제이다.

    문제의 핵심은 '수는 최대 1000자리이다.' 이 부분이다.

    최대 1000으로 봤는데 자세히 보니 1000'자리'이다. 그래서 string으로 해결.


    #include <string>
    #include <iostream>
    using namespace std;
    int main(){
        while(1){
            string s;
            cin>>s;
            if(s=="0") break;
            int N=0;
            for(int i=0;i<s.size();i++){
                N+=s.at(i)-'0';
            }
            while(N>9){
                int N2=N;
                N=0;
                for(;N2!=0;N2/=10)
                    N+=N2%10;
            }
            cout<<N<<"\n";
        }
    }
    


    '알고리즘 > 백준 알고리즘' 카테고리의 다른 글

    BOJ : 1916 최소비용 구하기  (0) 2017.01.19
    BOJ : 11945 뜨거운 붕어빵  (0) 2017.01.19
    BOJ : 1743 음식물 피하기  (0) 2017.01.17
    BOJ : 1707 이분 그래프  (0) 2017.01.17
    BOJ : 1697 숨바꼭질  (0) 2017.01.17