C#实现判断一个数是否为水仙花数的算法及完整源码
水仙花数,是指一个 n 位(n≥3)的数,它的每个位上的数字的 n 次幂之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3。
在 C# 中,我们可以通过以下代码实现判断一个数是否为水仙花数:
static bool IsNarcissisticNumber(int num)
{
int sum = 0;
int temp = num;
int n = num.ToString().Length;
while(temp != 0)
{
sum += (int)Math.Pow(temp % 10, n);
temp /= 10;
}
return sum == num;
}
首先,我们定义一个 bool 类型的方法 IsNarcissisticNumber,该方法接收一个 int 类型的参数 num,表示要判断的数。
接着,我们定义三个 int 类型的变量 sum、temp、n,分别表示位数幂和、临时变量、数的位数。
我们通过调用 num 的 ToString() 方法获取该数的位数,并将结果赋给 n 变量。
然后,我们进入 while 循环,判断 temp 是否等于 0。如果不为 0,则执行循环体。
循环体中,我们通过 temp % 10 获取 temp 的最后一位数字,并调用 Math.Pow 方法计算该数字的 n 次幂,将结果加到 sum 变量中。
接着,我们将 te