-
[C언어] 백준 1110번 - 더하기 사이클CS/백준 BOJ 2020. 3. 20. 23:15
문제 링크 : https://www.acmicpc.net/problem/1110
풀이
#include int main() { int n; int a, b, c; int cycle = 0; int comp; c = -1; scanf("%d", &n); comp = n; do { a = n/10; b = n%10; c = a + b; n = b*10 + c%10; cycle++; } while (n!=comp); printf("%d", cycle); return 0; }
그렇게 깔끔하진 못한 것 같다. 그래도 맞다고 나오기는 했다.
숫자를 자릿수에 따라 쪼개려면 나눗셈과 나머지연산을 이용하면 된다.
주어진 수가 26일 때,
주어진 수를 10으로 나눠 10의 자리를 구하고 (26/10 = 2),
주어진 수를 10으로 나눴을 때의 나머지를 구해 1의 자리를 구하면 된다. (26%10 = 6)
주어진 수가 두 자리수가 아닐 때도 같은 방법으로 하면 된다.
주어진 수가 9라면,
9/10 = 0
9%10 = 9 이므로 문제에서 요구하는 조건을 만족한다.
(문제 : 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. )
'CS > 백준 BOJ' 카테고리의 다른 글
[프로그래머스] 소수 만들기 JavaScript (0) 2022.04.25 [C++] 백준 10808번 - 알파벳 개수 (0) 2020.07.02 [C++] 백준 4949번 - 균형잡힌 세상 (스택 응용) (0) 2020.06.28 [C++] 백준 10828번 - 스택 (스택 구현하기) (0) 2020.06.28 [C언어] 백준 2577번 - 숫자의 개수 (1) 2020.03.21