输入一个整数n,求出1-n之间的所有水仙花数
输入描述
输入一个正整数n0.
输出描述
1-n之间的所有水仙花数
样例输入
1000
样例输出
153 370 371 407
执行代码如下所示:
using System;
namespace 第五题
{
class Program
{
static void Main(string[] args)
{
int n;
Console.Write("请输入数字:\t");
n = Convert.ToInt32(Console.ReadLine());
IsNarcissistic(n);
printN(n);
}
public static bool IsNarcissistic( int n)
{
int a, b = 0, c, sum = 0, d;
a = n;
d = n;
while (a != 0)
{
a /= 10;
b++;
}
while (n != 0)
{
c = n % 10;
sum += (int)Math.Pow(c, b);
n /= 10;
}
if (sum == d) return true;
else return false;
}
public static void printN( int n)
{
for (int i = 10; i < n; i++)
{
if (IsNarcissistic(i))
Console.WriteLine(i);
}
}
}
}
调试结果如图所示:
我的解题思路:
编写两个函数,一个用于判断一个整数是否水仙花数,另一个按从小到大的顺序打印出从一到n内所有的水仙花数。