c#数学上有个水仙花数他是这样定义的: 水仙花数是指一个三位数它的各位数字的立方和等于其本身比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。创建一个应用程序在控制台输入两个值一个输入m一个输入n输出数据如果有多个数据用空格隔开。 示例1 输入:120 300输出:153解释:在这个范围内只有153符合 示例2 输入:100 130输出:no解释:在这个范围内没有水
下面是一个使用C#编写的解决方案:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入两个整数m和n:");
int m = int.Parse(Console.ReadLine());
int n = int.Parse(Console.ReadLine());
bool hasNarcissisticNumber = false;
for (int i = m; i <= n; i++)
{
if (IsNarcissisticNumber(i))
{
Console.Write(i + " ");
hasNarcissisticNumber = true;
}
}
if (!hasNarcissisticNumber)
{
Console.WriteLine("no");
}
}
static bool IsNarcissisticNumber(int num)
{
int sum = 0;
int originalNum = num;
while (num > 0)
{
int digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
return sum == originalNum;
}
}
解决方案的思路如下:
- 首先通过控制台输入获取m和n的值。
- 使用一个循环从m到n遍历每个数字。
- 对于每个数字,使用IsNarcissisticNumber函数判断是否是水仙花数。
- 如果是水仙花数,则输出该数字,并将hasNarcissisticNumber标记为true。
- 如果循环结束后hasNarcissisticNumber为false,表示没有找到水仙花数,输出"no"
原文地址: http://www.cveoy.top/t/topic/hT7t 著作权归作者所有。请勿转载和采集!