반복수열

BiBi·2021년 2월 7일
0

코딩테스트연습

목록 보기
61/66
#include <iostream>
#include <queue>
#include <stdio.h>
#include <string>
#include <cmath>

int arr[1001];
bool visited[1001];
int a, p;
std::string str;
std::vector<int> vec;

void bfs(std::string v) {
	int len = v.length();
	int sum = 0;
	for (int i = 0;i < len;i++) {
		int k = v[i] - '0';
		int q = pow(k, p);
		sum += q;
	}
	vec.push_back(sum);
	if (vec.size()>1) {
		for (int i = 0;i < vec.size()-1;i++) {
			if (vec[i] == sum) {
				printf("%d", i);
				return;
			}
		}
	}
	std::string s = std::to_string(sum);
	bfs(s);
}



int main() {
	std::cin >> str;
	std::cin >> p;
	int tmp=std::stoi(str);
	vec.push_back(tmp);
	bfs(str);
	
}
profile
Server Network Engineer

0개의 댓글