Narcissistic Number
Example
Notice
Analysis
Solution
public class Solution {
/**
* @param n: The number of digits
* @return: All narcissistic numbers with n digits
*/
public List<Integer> getNarcissisticNumbers(int n) {
List<Integer> ans = new ArrayList();
if (n == 0) return ans;
int upperLimit = 1;
int lowerLimit = 1;
for (int i = 0; i < n; i++) {
upperLimit *= 10;
}
if (n == 1) {
lowerLimit = 0;
} else {
lowerLimit = 1;
for (int i = 0; i < n - 1; i++) {
lowerLimit *= 10;
}
}
double sum = 0.0;
for (int i = lowerLimit; i < upperLimit; i++) {
int k = i;
sum = 0.0;
while (k > 0) {
sum = sum + Math.pow(k % 10, n);
k = k / 10;
}
if (sum == (double) i) {
ans.add(i);
}
}
return ans;
}
}Last updated