안녕하세요.
이번에는 1110 번, 더하기 사이클 입니다.
https://www.acmicpc.net/problem/1110
참신하네요. 왜 이런 일을 하는지는 모르겠지만, 여튼 시키니까 해봅시다.
말을 길게 써놔서 뭔소린가 싶을 수도 있지만 결국 해석해보면 간단합니다.
주어진 수 의 오른쪽 자리 -> 십의 자리
주어진 수의 각 자리의 합의 오른쪽 자리 -> 일의 자리
그럼 while 문을 이용해서 코드를 짜면 이렇게 되겠군요.
#include <stdio.h>
int main()
{
int N = 0, tmp = 0, newnum = 0, prev = 0, cnt = 0;
scanf("%d", &N);
prev = N;
while (N != newnum || cnt == 0) // 0이 입력될 때를 대비
{
tmp = (prev / 10) + (prev % 10); // 각 자릿수 더하기
newnum = (prev % 10) * 10 + (tmp % 10); // 이어 붙이기
prev = newnum; // 이전 수 갱신
cnt++;
}
printf("%d", cnt);
return 0;
}
while 문에 cnt == 0 을 추가한 이유는, 0이 입력되면 while 문이 돌지 않아서 0을 출력해버립니다.
그래서 추가했습니다.
감사합니다.
'백준 문제풀이 > 반복문' 카테고리의 다른 글
백준 10951 C / 단계별로 풀어보기 - while 문 2 (0) | 2019.12.13 |
---|---|
백준 10952 C / 단계별로 풀어보기 - while 문 1 (0) | 2019.12.12 |
번외) for 문 예제 / 3중 for 문 C (0) | 2019.12.10 |
백준 10871 C / 단계별로 풀어보기 - for 문 11 (0) | 2019.12.09 |
백준 2439 C / 단계별로 풀어보기 - for 문 10 (0) | 2019.12.09 |