문제
- N이 주어졌을 때 N의 사이클의 길이를 구하시오 (1<= N < 100)
입력 : 26
정답: 4
보완할 점
소스코드
public class Algorithm25 {
public static void main(String[] args) {
// 더하기 사이클
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하세요 >> ");
String num = sc.next();
int sum = 0;
int count = 0;
//10보다 작은 경우
if(Integer.parseInt(num) < 10) {
num = "0" + num; //숫자앞에 0붙여주기
sum = (num.charAt(0)-'0') + (num.charAt(1)-'0'); //각 자리수값을 더해서 sum에 저장 0+5 = 5
count++;
String snum = "" + num.charAt(1) + (sum % 10); //결합
while(!snum.equals(num)) { //같으면 멈춰라
sum = (snum.charAt(0)-'0') + (snum.charAt(1)-'0'); //각 자리수값을 더해서 sum에 저장 0+5 = 5
count++;
snum = "" + snum.charAt(1) + (sum % 10); //결합
}
System.out.println("정답: " + count);
//10 이상 99이하
}else {
sum = (num.charAt(0)-'0') + (num.charAt(1)-'0');
count++;
String snum = "" + num.charAt(1) + (sum % 10); //결합
while(!snum.equals(num)) { //같으면 멈춰라
sum = (snum.charAt(0)-'0') + (snum.charAt(1)-'0');
count++;
snum = "" + snum.charAt(1) + (sum % 10); //결합
}
System.out.println("정답: " + count);
}
}
}
'알고리즘 문제연습 > 기초 알고리즘' 카테고리의 다른 글
[029] 음계 (백준 2920번) (0) | 2021.06.17 |
---|---|
[026] 상수 (백준 2908번) (0) | 2021.06.15 |
[023] 문자열 뒤집기 (0) | 2021.06.09 |
[021] 중복된 수 제거 (0) | 2021.06.08 |
[024] 평균을 넘은 학생들의 비율(백준 4344번) (0) | 2021.06.07 |
댓글