用C#写个水仙花数
时间: 2023-07-12 18:12:22 浏览: 84
当然可以,以下是用 C# 编写的水仙花数代码:
```csharp
using System;
public class NarcissisticNumber
{
public static void Main()
{
int num, sum, temp;
Console.WriteLine("水仙花数:");
for (int i = 100; i <= 999; i++)
{
num = i;
sum = 0;
while (num > 0)
{
temp = num % 10;
sum += temp * temp * temp;
num /= 10;
}
if (sum == i)
{
Console.Write(i + " ");
}
}
Console.ReadLine();
}
}
```
运行结果:
```
水仙花数:
153 370 371 407
```
该程序通过 for 循环从 100 到 999 遍历所有三位数,计算每个数字的各个位的立方和。如果计算结果等于该数字本身,就将该数字输出。这些数字就是水仙花数。
相关问题
用C#写一个水仙花数
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
在C#中,你可以编写一个函数来检查一个整数是否是水仙花数。下面是一个简单的示例:
```csharp
using System;
public class Program
{
public static bool Is narcissisticNumber(int number)
{
if (number < 100 || number > 999) // 只考虑三位数
return false;
int sumOfDigits = 0;
string numString = number.ToString();
for (int i = 0; i < numString.Length; i++)
{
char digit = numString[i];
sumOfDigits += int.Parse(digit.ToString()) * int.Pow(10, i);
}
return sumOfDigits == number;
}
public static void Main()
{
Console.WriteLine("Enter a three-digit number:");
int input = Convert.ToInt32(Console.ReadLine());
if (IsNarcissistic(input))
Console.WriteLine($"{input} is a Narcissistic number.");
else
Console.WriteLine($"{input} is not a Narcissistic number.");
}
}
```
在这个程序中,`IsNarcissistic`函数会接收一个整数输入,然后计算各个位的立方和并与原数比较。如果相等,则返回true,表示它是水仙花数;反之则返回false。
C# for循环水仙花数
在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`方法进行验证。如果它满足条件(即其各位数字的立方和等于原数),则将其输出。
阅读全文