// Created by gogowonji on 2022/03/11.
#include <iostream>
using namespace std;
int main() {
// insert code here...
// 백준 1110번
// in = 입력, r = 결과 저장
int in, r;
//사이클 수
int count = 0;
cin >> in;
r = in;
while(1){
int sum = (r / 10 + r % 10); //각 자리의 합
int ten = r % 10; // 새로운 결과의 십의 자리 수
int one = sum % 10; // 새로운 결과의 일의 자리 수
r = ten*10 + one; // 새로운 결과
count++;
if(r==in)
break;
}
cout << count << endl;
return 0;
}
조건을 살펴보면,
1) 입력값 x는 0 <= x <= 99
2) 주어진 수 < 10 이면
앞에 0붙여서 -> 두자리로 만들기
ex) 6 -> 0+(6) = (6) -> 66
3) 각자리 더하기 -> 새로운 결과
일의 자리 + 결과의 일의 자리
-> 반복
-> 원래 수로 사이클 몇?
ex)
26 -> 2+(6) = (8)
68 -> 6+(8) = 1(4)
84 -> 8+(4) = 1(2)
42 -> 4+(2) = (6)
26 <4>
2)에서
if문으로 코드 한 줄 더 만들기 쉬운데,
코드를 참고하면
int sum = (r / 10 + r % 10);
(6/10 = 0) + (6%10 = 6) = 6
if문을 만들지 않아도 결과가 동일하다.
차근차근 해나가면 어렵지 않은 코드였다.
분발...!