boj)1110
2020. 8. 29. 16:02ㆍPS/boj
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.in));
int n = Integer.parseInt(br.readLine());
getSum(n, n, 1);
}
static void getSum(int num, int n, int ans) {
int num1, num2, sum, result;
if (num < 10) {
num1 = 0;
num2 = num;
} else {
num1 = num / 10;
num2 = num % 10;
}
sum = num1 + num2;
result = num2*10 + sum%10;
if (result != n) {
getSum(result, n, ++ans);
} else {
System.out.println(ans);
}
}
}
- 이렇게까지 밖에 생각이 안났다.. while 문 쓰는게 익숙하지 않다..
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n, first, a, b;
int result = 0;
n = Integer.parseInt(br.readLine());
first = n;
do {
if(n < 10) {
a = 0;
b = n;
}else {
a = n / 10;
b = n % 10;
}
n = b*10 + (a+b)%10;
result++;
}while(n != first);
bw.write(result+"\n");
bw.flush();
}
}
- 깔끔한 풀이
- 한 번은 무조건 돌아야하니까 do while 문 생각을 했는데도 코드를 못적었다.