C# for循环水仙花数
时间: 2024-09-02 21:03:49 浏览: 66
在C#中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。我们可以编写一个for循环来检查从100到999之间的所有数字是否为水仙花数。以下是一个简单的示例:
```csharp
using System;
class Program
{
static void Main()
{
int start = 100;
int end = 999;
foreach (int num in GetNarcissisticNumbers(start, end))
{
Console.WriteLine("Number {0} is a Narcissistic number.", num);
}
}
// 定义函数找出水仙花数范围内的数字
static IEnumerable<int> GetNarcissisticNumbers(int min, int max)
{
for (int i = min; i <= max; i++)
{
if (IsNarcissistic(i))
{
yield return i; // 使用yield关键字返回值而不是立即打印
}
}
}
// 判断一个数字是否是水仙花数
static bool IsNarcissistic(int num)
{
int sumOfCubes = 0;
string digits = num.ToString();
foreach (char digit in digits)
{
int digitValue = int.Parse(digit.ToString());
sumOfCubes += Math.Pow(digitValue, 3);
}
return sumOfCubes == num;
}
}
```
在这个程序里,我们遍历指定范围内的每个整数,对每个数字应用`IsNarcissistic`方法进行验证。如果它满足条件(即其各位数字的立方和等于原数),则将其输出。
阅读全文