[BOJ] 2331. 반복수열

gyeong·2021년 3월 7일
0

PS

목록 보기
19/46

풀이

#include <iostream>
#include <math.h>
#include <string.h>

#define MAX 10000000

using namespace std;

int A, P, rst = 0;
int is_visit[MAX];

int cal_num(int n){
	int digit_sum = 0;
	while(n / 10 != 0){
		digit_sum += pow(n % 10, P);
		n = n / 10;
	}
	digit_sum += pow(n, P);
	return digit_sum;
}

void dfs(int n){
	is_visit[n] += 1;
	if(is_visit[n] == 3){
		for(int i = 0; i < MAX; i++){
			if(is_visit[i] == 1) rst++;
		}
		return;
	}
	dfs(cal_num(n));
}

int main(){
	cin >> A >> P;
	dfs(A);
	cout << rst << endl;
}	
profile
내가 보려고 만든 벨로그

0개의 댓글