使用CSharp中的枚举器实现输出N以内所有的水仙花数
时间: 2024-05-08 22:17:57 浏览: 8
可以的,枚举器是一种简单而强大的迭代器实现方式,可以用来遍历任何实现 IEnumerable 接口的对象。以下是 C# 中枚举器输出 N 以内的所有水仙花数的代码示例:
```
using System;
using System.Collections;
class Narcissus : IEnumerable
{
private int N;
public Narcissus(int n)
{
N = n;
}
public IEnumerator GetEnumerator()
{
for (int i = 1; i <= N; i++)
{
int sum = 0;
int k = i;
int m = 0;
while (k > 0)
{
m = k % 10;
sum += m * m * m;
k /= 10;
}
if (sum == i) yield return i;
}
}
}
class Program
{
static void Main(string[] args)
{
int n = 1000;
Narcissus ns = new Narcissus(n);
foreach(int i in ns)
{
Console.Write(i + " ");
}
}
}
```
输出结果为:
```
1 153 370 371 407
```