본문 바로가기
Online-Judge/Baekjoon

[Baekjoon] C++ 1110번 더하기 사이클

by nyangzzi 2021. 5. 21.
반응형

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 

 

input n을 입력 받는다.

int n = 0;
cin >> n;

 

 

현재 새로운 수, 뒷자리에 추가할 수, 싸이클 횟수를 각각 선언해준다.

이때, now는 가장 처음의 n으로 초기화 해준다.

int now = n; 	//현재 새로운 수
int re = 0;	//뒷자리에 추가 할 수
int cnt = 0;	//싸이클 횟수

 

 

now와 n이 같을 때까지 while문을 반복해준다.

이때, 위에서 now = n; 로 초기화 했기 때문에, 단순 while문을 사용하면 조건에 걸려 한 번도 수행하지 않게 된다.

따라서 무조건 한 번은 수행해야하므로 do-while문을 사용한다.

do {
	re = ((now / 10) + (now % 10)) % 10;
	now = (now % 10) * 10 + re;
	cnt++;
	} while (now != n);

 

 

마지막으로 써클의 수를 출력해준다.

cout << cnt << "\n";

[전체 코드]

#include <iostream>
using namespace std;

int main() {
	int n = 0;
	cin >> n;

	int now = n;
	int re = 0;
	int cnt = 0;

		do {
			re = ((now / 10) + (now % 10)) % 10;
			now = (now % 10) * 10 + re;
			cnt++;
		} while (now != n);
	

	cout << cnt << "\n";
}
반응형

'Online-Judge > Baekjoon' 카테고리의 다른 글

[Baekjoon] C++ 2920번 음계  (0) 2021.05.31
[Baekjoon] C++ 10039번 평균 점수  (0) 2021.05.31
[Baekjoon] C++ 10871번 X보다 작은 수  (0) 2021.05.21
[Baekjoon] C++ 1546번 평균  (0) 2021.05.20
[Baekjoon] C++ 1924번 2007년  (0) 2021.05.20

댓글