recursion
recursion
재귀를 이용한 한자릿수 만들기
// input 자연수 n이 주어졌을 때
// ex1) 10 일 경우 1 + 0 => 1
// ex2) 456789 일 경우 4 + 5 + 6 + 7 + 8 + 9 => 39
// 39 = > 3 + 9 = > 12
// 12 = > 1 + 2 => 3
public class recursion {
public static int compute(int source) {
if (source < 10) {
return source;
}
String sourceStr = Integer.toString(source);
int sum = 0;
for (int i = 0 ; i < sourceStr.length(); i ++) {
char ch = sourceStr.charAt(i);
int num = (int) ch - 48; // 아스키 코드
sum +=num;
}
return compute(sum); // 재귀 호출
}
public static void main(String[] args) {
int num = compute(456789);
System.out.println(num); // 3
}
}
Last updated
Was this helpful?