반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <iostream> using namespace std; int c[1000000]; int A, P; int pow(int x, int P) { int ans = 1; for (int i = 0; i < P; i++) ans *= x; return ans; } int next(int A, int P)//마지막 자리부터 처음 자리까지 보면서 수열을 구한다. { int ans = 0; while (A > 0) { ans += pow(A % 10, P); A /= 10; } return ans; } int sequence(int A, int P, int ans) { if (c[A] != 0)//수열이 반복된다면 그 전 숫자까지가 수열의 길이 return c[A]-1; c[A] = ans; int next_sequence = next(A, P); return sequence(next_sequence, P, ans + 1); } int main() { cin >> A >> P; cout << sequence(A, P, 1)<<'\n'; } | cs |
'Algorithm' 카테고리의 다른 글
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2812번:크게 만들기 답 (0) | 2017.03.26 |
---|---|
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2812번:크게 만들기(스택) 답 (5) | 2017.03.26 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 1707번:이분 그래프(DFS) 답 (0) | 2017.03.26 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 10867번:중복 빼고 정렬하기 답 (0) | 2017.03.26 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2042번:구간 합 구하기 답 (0) | 2017.03.24 |