4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다.


#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
bool array[10001] = {};
int temp = 0;
int nextNumber = 0;
for(int currentNumber = 1; currentNumber < sizeof(array); currentNumber++)
{
if(array[currentNumber] != true) cout << currentNumber << '\n';
temp = currentNumber;
nextNumber = currentNumber;
while(temp >= 10)
{
nextNumber += temp %10;
temp/= 10;
}
nextNumber += temp%10;
if(nextNumber <= 10000) array[nextNumber] = true;
}
}
메모리 (KB) | 시간 (ms) | 코드 길이 (B) |
2020 | 0 | 630 |
앞으로는 C++로만 풀어볼 예정이다!
🤔 다시 풀어보기
while문을 좀 더 효율적으로 쓰도록 해보자!
Uploaded by N2T