bingomangsoo   1년 전

package commit;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.<i>in</i>));
        int n = Integer.<i>parseInt</i>(br.readLine());

        int cnt =0;
        if (String.<i>valueOf</i>(n).length()==1){
            cnt = 0;
        }else {
            while (true) {
                int sum = 0;
                while (n != 0) {
                    sum += n % 10;
                    n /= 10;
                }
                n = sum;
                cnt++;
                if (n / 10 == 0) {
                    break;
                }
            }

        }
        if (n%3==0){
            System.<i>out</i>.println(cnt);
            System.<i>out</i>.println("YES");
        }else {
            System.<i>out</i>.println(cnt);
            System.<i>out</i>.println("NO");
        }
    }
}

두 가지 방법으로 풀었고, 다 잘 나오는데 왜 런타임 오류인지 모르겠습니다. 

아래 풀이는 구글링 통해서 String값을 입력 받고, eachsum()의 첫번째 인자값을 int형이 아닌 String 형으로 줌으로써 해결했는데 이게 왜 런타임 오류인가요?

peydihalta   1년 전

입력

첫째 줄에 큰 자연수 X가 주어진다. X는 1,000,000자리 이하의 수이다. 수는 0으로 시작하지 않는다.

때문입니다

bingomangsoo   1년 전

죄송합니다 ㅠㅜ 제가 잘 이해가 되지 않아서 그런데

이 문제에서sc.nextInt();이렇게  int로 입력받는 거랑, sc.next(); String으로 입력받는 거랑 무슨 차이가 있는 건가요??

peydihalta   1년 전

Java Data Types (w3schools.com)

int4 bytesStores whole numbers from -2,147,483,648 to 2,147,483,647

1,000,000자리 수는 넣을 수가 없습니다

bingomangsoo   1년 전

감사합니다!!!!!

댓글을 작성하려면 로그인해야 합니다.