X가 1000000자리 아래 수만 입력된다길래 1000000아래 수라고 착각했다.
문자열에 저장된 문자의 아스키코드를 문자, 정수형으로 변환하는 방법과 정수를 문자열로 다시 변환하는 법을 공부할 수 있다.
import java.util.Scanner;
public class bj1769 {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args)
{
String X = inputData();//백만자리 이하의 수는 1000000이하가 아니라 길이가 1000000이다
findAnswer(X);
scanner.close();
}
public static String inputData()
{
String num;
num = scanner.next();
return num;
}
public static void findAnswer(String X)
{
int count = 0;
int i;
int sum;
int num;
while(X.length() > 1)
{
sum = 0;
for(i = 0; i < X.length(); i++)
{
num = X.charAt(i) - '0';
//System.out.println(num);
sum += num;
}
count++;
//System.out.println("sum : " + sum);
X = String.valueOf(sum);
//System.out.println("X : " + X);
}
System.out.println(count);
if(X.equals("3") || X.equals("6") || X.equals("9"))
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
}
}