[伯俊]2331 C++
質問する
コード#コード# #include <iostream>
#include <string>
#include <cmath>
using namespace std;
// 반복수열
// visited가 반복되지 않은 것만 세면 되므로 1인 것은 한 번만 나왔던 것이므로
int P;
// 9^5 = 295245
int visited[300001] = {0, };
void DFS(int a) {
visited[a]++;
// 3이 된 순간 계속 반복될 것을 의미하므로 종료
if(visited[a] == 3) { return; }
int sum = 0;
while(a) {
// P제곱한 값을 구하는 식
sum += (int)pow((a % 10), P);
a /= 10;
}
// 다음 값은 지금 값의 P제곱
DFS(sum);
}
int main() {
ios::sync_with_stdio(0);
int A;
cin >> A >> P;
DFS(A);
int result = 0;
for(int i=0; i<300001; i++) {
if(visited[i] == 1) { result++; }
}
cout << result << '\n';
return 0;
}
📢
簡単な実施の問題さえうろうろしている.
Reference
この問題について([伯俊]2331 C++), 我々は、より多くの情報をここで見つけました
https://velog.io/@dbsrud11/백준-2331-C
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
// 반복수열
// visited가 반복되지 않은 것만 세면 되므로 1인 것은 한 번만 나왔던 것이므로
int P;
// 9^5 = 295245
int visited[300001] = {0, };
void DFS(int a) {
visited[a]++;
// 3이 된 순간 계속 반복될 것을 의미하므로 종료
if(visited[a] == 3) { return; }
int sum = 0;
while(a) {
// P제곱한 값을 구하는 식
sum += (int)pow((a % 10), P);
a /= 10;
}
// 다음 값은 지금 값의 P제곱
DFS(sum);
}
int main() {
ios::sync_with_stdio(0);
int A;
cin >> A >> P;
DFS(A);
int result = 0;
for(int i=0; i<300001; i++) {
if(visited[i] == 1) { result++; }
}
cout << result << '\n';
return 0;
}
📢
簡単な実施の問題さえうろうろしている.
Reference
この問題について([伯俊]2331 C++), 我々は、より多くの情報をここで見つけました
https://velog.io/@dbsrud11/백준-2331-C
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について([伯俊]2331 C++), 我々は、より多くの情報をここで見つけました https://velog.io/@dbsrud11/백준-2331-Cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol