分别使用枚举器、迭代器实现输出N以内所有的水仙花数
时间: 2024-05-05 14:16:49 浏览: 16
枚举器实现:
```java
import java.util.Enumeration;
import java.util.Vector;
public class NarcissisticNumberEnumerator implements Enumeration<Integer> {
private int current = 0;
@Override
public boolean hasMoreElements() {
return true;
}
@Override
public Integer nextElement() {
while (!isNarcissisticNumber(++current)) {
}
return current;
}
private boolean isNarcissisticNumber(int n) {
int sum = 0;
int temp = n;
int length = String.valueOf(n).length();
while (temp != 0) {
int digit = temp % 10;
sum += Math.pow(digit, length);
temp /= 10;
}
return sum == n;
}
public static void main(String[] args) {
NarcissisticNumberEnumerator enumerator = new NarcissisticNumberEnumerator();
for (int i = 0; i < 10; i++) {
System.out.println(enumerator.nextElement());
}
}
}
```
迭代器实现:
```java
import java.util.Iterator;
public class NarcissisticNumberIterator implements Iterator<Integer> {
private int current = 0;
@Override
public boolean hasNext() {
return true;
}
@Override
public Integer next() {
while (!isNarcissisticNumber(++current)) {
}
return current;
}
private boolean isNarcissisticNumber(int n) {
int sum = 0;
int temp = n;
int length = String.valueOf(n).length();
while (temp != 0) {
int digit = temp % 10;
sum += Math.pow(digit, length);
temp /= 10;
}
return sum == n;
}
public static void main(String[] args) {
NarcissisticNumberIterator iterator = new NarcissisticNumberIterator();
for (int i = 0; i < 10; i++) {
System.out.println(iterator.next());
}
}
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)