문제
https://www.acmicpc.net/problem/2331
풀이과정
먼저 문제에서 주어진 규칙대로 벡터에 수열을 생성했다.
그리고 주어진 규칙대로 만들어진 수가 이미 수열에 존재하면 그 수가 존재하는 index 까지의 개수를 출력되도록 만들었다.
소스코드
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector<int> D;
int A, P;
int solution(int A)
{
D.push_back(A);
while (1)
{
int next_num=0;
while (A != 0)
{
next_num += pow(A % 10, P);
A /= 10;
}
for (int i = 0; i < D.size(); i++)
{
if (D[i] == next_num)
return i;
}
D.push_back(next_num);
A = next_num;
}
}
int main()
{
cin >> A >> P;
cout << solution(A) << endl;
return 0;
}