題目內容

尋找 01000 的 Narcissistic Number 並使迴圈在 200 次以內結束。

程式碼

 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
32
33
34
35
36
37
#include <iostream>

using namespace std;

int main() {
    int mp[1000] = {0};
    int count = 0;
    for(int i = 0; i < 10; i++) {
        count++;
        cout << i << endl;
        int n = i*i*i - i;
        mp[n] = i;
    }

    for(int i = 1; i < 10; i++) {
        for(int k = 0; k < 10; k++) {
            count++;
            // Second Digit Check
            if((i*i + k*k) == (i * 10 + k)) {
                cout << i << k << endl;
            }

            // Third Digit Check
            int n = i * 100 + k * 10 - i*i*i - k*k*k;
            if(n == 0) {
                cout << i << k << 0 << endl;
                cout << i << k << 1 << endl;
            } else if(n > 0) {
                if(mp[n] != 0) {
                    cout << i << k << mp[n] << endl;
                }
            }
        }
    }
    cout << "Count: " << count << endl;
    return 0;
}