티스토리 뷰

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))), ...과 같은 무한 수열을 만들 수 있다.
https://www.acmicpc.net/problem/4673
#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)
20200630

앞으로는 C++로만 풀어볼 예정이다!

🤔 다시 풀어보기

while문을 좀 더 효율적으로 쓰도록 해보자!


Uploaded by N2T

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
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
링크
Total
Today
Yesterday