Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
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
31
Archives
Today
Total
관리 메뉴

차근차근

[백준 6378] 디지털 루트 본문

대학교/Algorithm

[백준 6378] 디지털 루트

SWKo 2020. 3. 15. 14:56

0. 제목

  • 백준 6378 디지털 루트
  • BOJ 6378 디지털 루트
  • C++ 6378 디지털 루트

1. 문제

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


2. 풀이

  • 이 문제의 핵심은 수가 최대 1000자리라는 것이다.
  • int 는 불가능하고 long long 마저도 불가능하다. 따라서 문자열로 입력받는다.
  • 그 후 한자리수가 될 때까지 반복적으로 조건에 따라 계산을 한다.

3. 코드

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
#include <iostream>
#include <string>
using namespace std;
 
int main(int argc, const char * argv[]) {
    string s;
    int sum = 0;
    while(1){
        cin >> s;
        if(s == "0")
            break;
        
        sum = 0;
        while(1){
            for(int i = 0; i < s.length(); i++)
                sum += s[i] - '0';
            
            if(sum < 10)
                break;
            else{
                s = to_string(sum);
                sum = 0;
            }
        }
        cout << sum << '\n';
    }
    return 0;
}
 
 

'대학교 > Algorithm' 카테고리의 다른 글

[백준 1697] 숨바꼭질  (0) 2020.03.19
[백준 10819] 차이를 최대로  (0) 2020.03.18
[백준 2225] 합분해  (0) 2020.03.14
[백준 9461] 파도반 수열  (0) 2020.03.13
[백준 1167] 트리의 지름  (0) 2020.03.11
Comments