끄적끄적 코딩
article thumbnail
728x90

1의 자리 수와 그 전에 더했던 숫자를 계속해서 더하면서 원래 숫자가 나올때까지 몇번 반복해야하는지 찾는 문제입니다.

26의 경우

2 + 6 = 8         68

6 + 8 = 14       84

8 + 4 = 12       42

4 + 2 = 6        26

4번의 순환을 통해 찾았습니다.

 

a = 10의 자리 수

b = 1의 자리 수

c = a+b를 더한 후 1의 자리 수

d = 합쳐진 수

 

6 + 8 = 14     84 를 예로 들면

a = 6

b = 8

c = 4

d = 84

입니다.

 

#include <iostream>
using namespace std;

int main(int argc, char * argv[])
{
   int x;
   int a, b, c, d;
   int count = 0;
   cin >> x;
   d = x;
   while (d != x || count == 0) {
      a = d / 10;
      b = d % 10;
      c = (a + b) % 10;
      a = b;
      b = c;
      d = a * 10 + b;
      count++;
   }
   cout << count << "\n";
   return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 2908번 상수  (0) 2019.03.05
[C++] 백준 4673번 셀프 넘버  (0) 2019.03.05
[C++] 백준 4344번 평균은 넘겠지  (0) 2019.03.05
[C++] 백준 1546번 평균  (0) 2019.03.05
[C++] 백준 10871번 X보다 작은 수  (0) 2019.03.05

검색 태그