求三位数的水仙花数c#
时间: 2023-11-24 19:52:49 浏览: 98
以下是一个求解三位数水仙花数的C#代码实现:
```csharp
List<int> narcissisticNumbers = new List<int>();
for (int i = 100; i < 1000; i++)
{
int sum = 0;
int temp = i;
while (temp > 0)
{
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == i)
{
narcissisticNumbers.Add(i);
}
}
foreach (int num in narcissisticNumbers)
{
Console.WriteLine(num);
}
```
该代码使用了一个for循环来遍历所有的三位数,然后使用while循环来计算每个数的各位数字的立方和。如果计算结果等于该数本身,则将该数添加到一个列表中。最后,使用foreach循环遍历列表并输出所有的水仙花数。
相关问题
用C#求三位数的水仙花数
水仙花数是指一个n位正整数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C#中,你可以编写一个函数来检查一个三位数是否是水仙花数。下面是一个简单的示例:
```csharp
using System;
public class Program {
public static void Main() {
int num;
Console.Write("请输入一个三位数: ");
if (int.TryParse(Console.ReadLine(), out num) && num >= 100 && num <= 999) {
if (IsArmstrongNumber(num))
Console.WriteLine($"{num} 是水仙花数");
else
Console.WriteLine($"{num} 不是水仙花数");
} else {
Console.WriteLine("输入无效,请输入一个三位数。");
}
}
// 检查是否为水仙花数的辅助函数
private static bool IsArmstrongNumber(int n)
{
int sum = 0, temp = n;
while (temp != 0)
{
int remainder = temp % 10;
sum += Math.Pow(remainder, 3);
temp /= 10;
}
return sum == n;
}
}
```
在这个代码中,`IsArmstrongNumber`函数会计算输入数字每一位的立方和,然后比较这个和是否等于原始数字。如果是,则返回true,表示是水仙花数;否则返回false。
用穷举算法C#求三位数的水仙花数
在C#中,我们可以使用穷举法来寻找所有三位数的水仙花数。水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153就是水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是简单的C#代码示例,展示了如何遍历从100到999的所有三位数并检查它们是否为水仙花数:
```csharp
using System;
class Program
{
static void Main()
{
for (int num = 100; num <= 999; num++)
{
int firstDigit = num / 100;
int secondDigit = (num % 100) / 10;
int thirdDigit = num % 10;
if (firstDigit * firstDigit * firstDigit + secondDigit * secondDigit * secondDigit + thirdDigit * thirdDigit * thirdDigit == num)
{
Console.WriteLine("找到水仙花数: {0}", num);
}
}
}
}
```
在这个程序中,我们首先将三位数分解成百位、十位和个位数字,然后计算每个数字的立方之和,如果这个和等于原数,那么我们就找到了一个水仙花数。
阅读全文