c++迭代器输出水仙花数
时间: 2023-11-20 17:30:50 浏览: 79
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int start, end;
cout << "请输入起始数:";
cin >> start;
cout << "请输入结束数:";
cin >> end;
for(int i = start; i <= end; i++)
{
int num = i;
int sum = 0;
int count = 0;
while(num > 0)
{
count++;
num /= 10;
}
num = i;
while(num > 0)
{
sum += pow(num % 10, count);
num /= 10;
}
if(sum == i)
cout << i << "是水仙花数" << endl;
}
return 0;
}
相关问题
c++分别使用枚举器、迭代器实现输出N以内所有的水仙花数
枚举器实现:
```java
import java.util.Enumeration;
import java.util.Vector;
public class NarcissisticNumber {
public static void main(String[] args) {
int n = 1000; // 输出N以内的水仙花数
Vector<Integer> v = new Vector<>();
for (int i = 100; i <= n; i++) {
int sum = 0;
int temp = i;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == i) {
v.add(i);
}
}
Enumeration<Integer> en = v.elements();
while (en.hasMoreElements()) {
System.out.print(en.nextElement() + " ");
}
}
}
```
迭代器实现:
```java
import java.util.ArrayList;
import java.util.Iterator;
public class NarcissisticNumber {
public static void main(String[] args) {
int n = 1000; // 输出N以内的水仙花数
ArrayList<Integer> list = new ArrayList<>();
for (int i = 100; i <= n; i++) {
int sum = 0;
int temp = i;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == i) {
list.add(i);
}
}
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
```
阅读全文
相关推荐













