求解水仙花数,水仙花数是三位数,各位数字的立方和等于这个三位数本身,
如:371=3*3*3+7*7*7+1*1*1,则371就是一个水仙花数。请使用while循环实现。
public class test {
public static void main(String []args){
int p=100;
while(p<=999){
if(getNum(p)){
System.out.println(p);
}
p++;
}
}
static boolean getNum(int num){
int x = num/100;
int y = num/10%10;
int z = num%10;
if(num == x*x*x+y*y*y+z*z*z){
return true;
}else{
return false;
}
}
}
private void CheckBtn_Click(object sender, RoutedEventArgs e)
{
List<int> Results = new List<int>();
int i = 99;
while (i <= 999)
{
i++;
int ge = int.Parse(i.ToString().Substring(2, 1));
int shi = int.Parse(i.ToString().Substring(1, 1));
int bai = int.Parse(i.ToString().Substring(0, 1));
if (Check(ge, shi, bai))
{
Results.Add(i);
}
}
}
bool Check(int ge, int shi, int bai)
{
int result = ge * ge * ge + shi * shi * shi + bai * bai * bai;
int input = bai * 100 + shi * 10 + ge;
if (result== input)
{
return true;
}
return false;
}