본문 바로가기

Algorithm

(C++) - 백준(BOJ) 6378 : 디지털 루트 답

반응형
#include <iostream>
#include <cstring>
using namespace std;
int main() {
    int ans;
    char k[1001];
    while (1)
    {
        cin >> k;
        if (k[0]=='0') { break; }
        while (1)
        {
            ans = 0;
            for (int i = 0; i < strlen(k); i++)
            {
                ans += k[i] - '0';
            }
            if (ans < 10) { cout << ans << '\n'; break; }
            else
            {
                for (int i = 0; i < strlen(k); i++)
                    k[i] = '0';
                sprintf(k,"%d", ans);//바뀐 숫자를 다시 k에 넣어줌
            }
        }
    }
}