水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
//第一种算法
for (int i = 100; i < 1000; i++)//i是100-999之间的一个三位数
{
int baiwei = i / 100;//获取百位的数字
int shiwei = i % 100 / 10;//获取十位的数字
int gewei = i % 10;//获取个位的数字
if (Math.Pow(baiwei,3)+Math.Pow(shiwei,3)+Math.Pow(gewei,3)==i)//如果百位的3次方和十位的3次方和个位的3次方之和等于这个数则输出
{
Console.WriteLine(i);
}
}
//第二种算法
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
for (int z = 0; z < 10; z++)
{
if (i*i*i+j*j*j+z*z*z==i*100+j*10+z)
{
Console.WriteLine(i*100+j*10+z);
}
}
}
}
Console.Read();
分离一个数字的各个位数的方法:比如675这个数要想得到6,7,5,可以这么写
675/100这表示675整除100得6,即为百位的数字
675%100/10这表示675除以100的余数再除10,即为75/10的7,即为十位的数字
675%10这表示675除以10的余数即为5,即为个位的数字
这样我们就得到了675的每个位的数字