c#算,4位"水仙花数"是一位四位数,其各位数字的4次方等于该数本身求所有4位“水仙花数”的编程

c#算,4位"水仙花数"是一位四位数,其各位数字的4次方等于该数本身求所有4位“水仙花数”的编程

你要求的这个4位数也叫四叶玫瑰数
由于水仙花数的特性,即n位数,是各个位数的n次幂之和,
可以定义一个算法,
我以最简单的遍历求值算法为例,
static void Main(string[] args)
{
for(int i=1000;i<10000;i++)
{
//i肯定是4位数
string orig_num = i.ToString();
double _tho = Convert.ToDouble(orig_num.Substring(0, 1));//千
double _hun = Convert.ToDouble(orig_num.Substring(1, 1));//百
double _ten = Convert.ToDouble(orig_num.Substring(2, 1));//十
double _one = Convert.ToDouble(orig_num.Substring(3, 1));//个

double sum = Math.Pow(_tho, 4) + Math.Pow(_hun, 4) + Math.Pow(_ten, 4) + Math.Pow(_one, 4);
if(sum==i) //如果满足各个位数的4次方之和等于这个数本身,输出
{
Console.WriteLine(i.ToString());
}
}
Console.ReadKey();
}
可以算出3个4位水仙花数。

以上代码可以稍微拓展一下,利用orig_num.Lenght 再做一个遍历,求出各个位数的值,然后求平方, 即可以算出所有双精度浮点数索引内的水仙花数。
温馨提示:答案为网友推荐,仅供参考
相似回答