3位“水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。输入一个三位整数并判断不小于该数的最小水仙花数,并给出判断结果。用C#编写代码
时间: 2024-05-07 22:20:16 浏览: 100
以下是C#代码实现:
```csharp
using System;
class Program {
static void Main(string[] args) {
Console.Write("请输入一个三位数:");
int n = int.Parse(Console.ReadLine());
if (n < 100 || n > 999) {
Console.WriteLine("输入不合法!");
return;
}
int i = n;
while (true) {
int a = i / 100;
int b = (i / 10) % 10;
int c = i % 10;
if (a * a * a + b * b * b + c * c * c == i) {
Console.WriteLine("不小于该数的最小水仙花数是:" + i);
return;
}
i++;
}
}
}
```
代码思路:
1. 读入一个三位数,判断是否合法。
2. 从该数开始循环,每次判断该数是否为水仙花数。
3. 若是水仙花数,则输出结果并结束程序。
4. 若不是水仙花数,则继续循环,并逐个增加数值,直到找到最小的水仙花数。
相关问题
c#水仙花数的判定:3位“水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。输入一个三位整数并判断不小于该数的最小水仙花数,并给出判断结果。
以下是使用 C# 编写的解决方案:
```csharp
using System;
class Program {
static void Main(string[] args) {
Console.Write("请输入一个三位整数:");
int n = Convert.ToInt32(Console.ReadLine());
// 找到不小于 n 的最小水仙花数
int i = n;
while (true) {
if (IsNarcissisticNumber(i)) {
Console.WriteLine("{0} 是水仙花数。", i);
break;
}
i++;
}
}
// 判断一个数是否为水仙花数
static bool IsNarcissisticNumber(int n) {
int sum = 0;
int temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == n;
}
}
```
示例输出:
```
请输入一个三位整数:123
153 是水仙花数。
```
该程序首先让用户输入一个三位整数,然后使用一个循环来找到不小于该数的最小水仙花数。循环中,每次判断一个数是否为水仙花数,如果是,则输出该数并结束循环。判断一个数是否为水仙花数的方法是将每一位数字的三次方加起来,然后与该数本身比较。
python 输入一个整数,输出小于等于该整数的所有水仙花数,每行输出一个,若没有水仙花数则输出“none” “3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
好的,这是一个比较简单的 Python 编程问题。以下是代码实现:
```python
num = int(input("请输入一个整数:"))
is_exist = False # 标记是否存在水仙花数
for i in range(100, num+1):
# 将 i 转换为字符串,然后使用列表推导式计算各位数字的 3 次方的和
s = sum([int(x)**3 for x in str(i)])
if s == i:
print(i)
is_exist = True
if not is_exist:
print("none")
```
解释一下代码:
首先,我们通过 `input()` 函数获取用户输入的整数,并将其转换为整型变量 `num`。接着,我们设置一个布尔类型的变量 `is_exist`,用来标记是否存在水仙花数。
然后,我们使用 `for` 循环从 100 循环到用户输入的整数 `num`。对于每个数字 `i`,我们使用列表推导式计算出其各位数字的 3 次方的和,并将其保存在变量 `s` 中。如果 `s` 等于 `i`,说明 `i` 是一个水仙花数,我们将其输出,并将 `is_exist` 标记为 True。
最后,如果不存在水仙花数,我们输出 "none"。
阅读全文