목차
코드
#include <iostream>
using namespace std;
int main() {
int n; // 주어진 수
cin >> n;
int left, right; // 왼쪽 수, 오른쪽 수
int cycle = 0; // 사이클 수
int num_new = n; // 계산된 수
do{
left = num_new / 10;
right = num_new % 10;
num_new = right * 10 + ((left + right) % 10);
cycle += 1;
}while(n != num_new);
cout << cycle;
}
풀이
두 자리 수인 N이 주어집니다.
그 수의 왼쪽 수(10의 자리수) 와 오른쪽 수(1의 자리수)를 구해야 문제를 풀 수 있는데요.
구하는 방법은 간단합니다.
왼쪽 수(10의 자리)는 N을 10으로 나눈 몫입니다.
오른쪽 수(1의 자리)는 N을 10으로 나눈 나머지입니다.
이를 사용해서 초기에 주어진 수와 계산되어 새로 나온 수가 동일해질때까지 반복문을 사용해서 계산하면 됩니다.
'공부 > 백준' 카테고리의 다른 글
백준 1158번: 요세푸스 문제(C++) (0) | 2020.12.03 |
---|---|
백준 2609번: 최대공약수와 최소공배수(C++) (0) | 2020.12.02 |
백준 1977번: 완전제곱수(C++) (0) | 2020.11.30 |
백준 1075번: 나누기(C++) (0) | 2020.11.29 |
백준 9251번: LCS(C++) (0) | 2020.11.28 |