c#while实现:输出所有三位数中的水仙花数(水仙花数是三位数,该三位数的个位、十位、百位的立方和等于这个数。例如153=1的立方+5的立方+3的立方)
时间: 2024-03-21 22:43:58 浏览: 91
好的,这是一个简单的问题。可以使用 C# 的 while 循环语句和条件语句实现。代码如下所示:
```csharp
int num = 100;
while (num < 1000)
{
int i = num / 100; // 获取百位数
int j = (num / 10) % 10; // 获取十位数
int k = num % 10; // 获取个位数
if (num == i * i * i + j * j * j + k * k * k)
{
Console.WriteLine(num); // 输出水仙花数
}
num++;
}
```
这段代码中,我们定义了一个变量 `num`,并赋值为 100,表示从 100 开始遍历所有的三位数。然后使用 while 循环语句,当 `num` 不超过 999 时,执行循环体内的代码。
在循环体内,我们使用数学方法获取了 `num` 的百位数、十位数和个位数,并根据水仙花数的定义进行判断。如果 `num` 是水仙花数,则输出它。最后,将 `num` 自增 1,继续下一个循环,直到遍历完所有的三位数。
希望这个回答能够解决你的问题。
相关问题
用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);
}
}
}
}
```
在这个程序中,我们首先将三位数分解成百位、十位和个位数字,然后计算每个数字的立方之和,如果这个和等于原数,那么我们就找到了一个水仙花数。
阅读全文