-
백준 1110. 더하기 사이클 (While)알고리즘 문제풀기/백준 2022. 2. 3. 14:04
문제출처
https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
나의 정답.
#include <iostream> using namespace std; int main() { cin.tie(NULL); ios_base::sync_with_stdio(false); int count = 0; int start; cin >> start; // 시작값 설정 int tenPos = ((start - (start % 10)) / 10); // 십의 자리 추출 int onePos = start % 10; // 일의 자리 추출 int sum = tenPos + onePos; // 십의 자리 + 일의 자리 int sumOnePos = sum % 10; // 결과값의 일의 자리 추출 int newNum = (onePos * 10) + sumOnePos; // 새로운수 = 일의 자리+결과값의 일의 자리 count++; // 새로운 수가 나오면 count 1증가 while (start != newNum) // 시작값과 새로운 수가 같으면 반복문 탈출 { tenPos = ((newNum - (newNum % 10)) / 10); // start -> newNum으로 바꿈 onePos = newNum % 10; // start -> newNum으로 바꿈 sum = tenPos + onePos; sumOnePos = sum % 10; newNum = (onePos * 10) + sumOnePos; count++; } cout << count; // 결과 출력 }
'알고리즘 문제풀기 > 백준' 카테고리의 다른 글
8958번: OX퀴즈 (0) 2022.05.15 11654번: 아스키 코드 (0) 2022.05.14 2562번: 최댓값 (0) 2022.05.14 10818번: 최소, 최대 (0) 2022.05.14