μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- BFS
- μμνμ
- μ€λΈμ
- ν°μ€ν 리μ±λ¦°μ§
- λ¨Έμ§μνΈ
- db
- 그리λ
- DP
- νμ΄μ¬
- μν
- κΉμ΄μ°μ νμ
- λ°μ΄ν°λ² μ΄μ€
- LIS
- λ³ν©μ λ ¬
- μ λ ¬
- κ·Έλννμ
- λ°±μ€
- DFS
- μκ³ λ¦¬μ¦
- μλ£κ΅¬μ‘°
- νλ‘κ·Έλλ¨Έμ€
- μμꡬνκΈ°
- λμ κ³νλ²
- λλΉμ°μ νμ
- λμ ν©
- SQL
- μ°μ μμν
- κ·Έλν
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- ꡬν
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 2331λ²: λ°λ³΅μμ΄ - C++ λ³Έλ¬Έ
λ¬Έμ
λ€μκ³Ό κ°μ΄ μ μλ μμ΄μ΄ μλ€.
- D[1] = A
- D[n] = D[n-1]μ κ° μ리μ μ«μλ₯Ό Pλ² κ³±ν μλ€μ ν©
μλ₯Ό λ€μ΄ A=57, P=2μΌ λ, μμ΄ Dλ [57, 74(=52+72=25+49), 65, 61, 37, 58, 89, 145, 42, 20, 4, 16, 37, …]μ΄ λλ€. κ·Έ λ€μλ μμ λμ¨ μλ€(57λΆν°κ° μλλΌ 58λΆν°)μ΄ λ°λ³΅λλ€.
μ΄μ κ°μ μμ΄μ κ³μ ꡬνλ€ λ³΄λ©΄ μΈμ κ° μ΄μ κ°μ λ°λ³΅μμ΄μ΄ λλ€. μ΄λ, λ°λ³΅λλ λΆλΆμ μ μΈνμ λ, μμ΄μ λ¨κ² λλ μλ€μ κ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€. μμ μμμλ [57, 74, 65, 61]μ λ€ κ°μ μκ° λ¨κ² λλ€.
μ λ ₯
첫째 μ€μ A(1 ≤ A ≤ 9999), P(1 ≤ P ≤ 5)κ° μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ λ°λ³΅λλ λΆλΆμ μ μΈνμ λ, μμ΄μ λ¨κ² λλ μλ€μ κ°μλ₯Ό μΆλ ₯νλ€.
1λΆν° 1000000κΉμ§ vectorννμ λ°°μ΄μ λ§λ λ€, λͺ¨λ 0μΌλ‘ μ΄κΈ°νν΄μ€λ€. μ΄ λ²‘ν°λ λ°©λ¬Ένμλ₯Ό count ν΄μ£Όλ λ° μ¬μ©λλ€. DFSμ μ¬κ·μ μΈ μ±μ§μ μ΄μ©νμ¬ AλΆν° λ°©λ¬Ένμ¬ κ·μΉμ λ°λΌ μ°μ°ν κ²°κ³Όμ μ μ λ€μ μ°¨λ‘μ°¨λ‘ λ°©λ¬Έν΄κ°λ©° λ°©λ¬Ένμλ₯Ό μΈμ΄μ€λ€. μμ΄μ ꡬνλ©΄μ λ°λ³΅λλ μκ° λμμ λλ λ°©λ¬Έ νμκ° 2 μ΄μμ΄ λμλμ΄λ―λ‘, μ΄λ₯Ό νμΈνμ¬ μ²μμΌλ‘ λ°λ³΅λλ μκ° λ°μνμμ λ ν¨μλ₯Ό λΉ μ Έλμ¨λ€.
μ΄ν ν λ²μ© λ°©λ¬Έν μ μ μ κ°μκ° λ°λ³΅μμ΄μ κΈΈμ΄κ° λλ€.
μ½λ
#include <cstdio>
#include <vector>
#include <cmath>
#define MAX 1000000
using namespace std;
vector<int> visited(MAX, 0);
void DFS(int num, int P);
int main(void) {
int A, P;
scanf("%d %d", &A, &P);
DFS(A, P);
int count = 0;
for(int i = 0; i <= MAX; i++) {
if(visited[i] == 1)
count++;
else
continue;
}
printf("%d\n", count);
return 0;
}
int calc(int A, int P) {
int temp = A;
int sum = 0;
while(temp > 0) {
sum += (int)(pow(temp % 10, P));
temp /= 10;
}
return sum;
}
void DFS(int num, int P) {
visited[num]++;
if(visited[num] > 2) return; // λ°λ³΅λλ μκ° νλ°ν΄ λμμ λ λ©μΆ€
DFS(calc(num, P), P);
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 4963λ²: μ¬μ κ°μ - C++ (0) | 2021.12.27 |
---|---|
[λ°±μ€] 2667λ²: λ¨μ§λ²νΈλΆμ΄κΈ° - C++ (0) | 2021.12.24 |
[λ°±μ€] 11724λ²: μ°κ²° μμμ κ°μ - C++ (0) | 2021.12.22 |
[λ°±μ€] 1260λ²: DFSμ BFS - C++ (0) | 2021.12.21 |
[λ°±μ€] 1676λ²: ν©ν λ¦¬μΌ 0μ κ°μ - C++ (0) | 2021.08.25 |