/*
打印出所有的“水仙花数”,即一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,153=1的三次方+5的三次方+3的三次方。
*/
class Demo
{
private static int[] arr = new int[3];
private static Demo instance = new Demo();
private Demo(){}
public static Demo getInstance()
{
return instance;
}
public void judgeShuiXianHua(int integer)
{
selectNumber(integer);
chaiShu(integer);
if(integer == liFangHe())
printShuiXianHua(integer);
}
private void selectNumber(int integer)
{
if(integer < 100 || integer > 999)
showError(integer);
}
private void showError(int integer)
{
System.out.println("Illegal Number:"+integer+"\t必须在100到999之间!");
System.exit(0);
}
private void printShuiXianHua(int integer)
{
System.out.println(integer+"\t是水仙花数!");
}
private void chaiShu(int integer)
{
this.arr[0] = integer/100;
this.arr[1] = integer/10%10;
this.arr[2] = integer%10;
}
private int liFangHe()
{
//return this.arr[0]*this.arr[0]*this.arr[0]+this.arr[1]*this.arr[1]*this.arr[1]+this.arr[2]*this.arr[2]*this.arr[2];
return pow(this.arr[0])+pow(this.arr[1])+pow(this.arr[2]);
}
private int pow(int integer)
{
return integer*integer*integer;
}
}
class MainClass
{
public static void main(String[] args)
{
Demo d = Demo.getInstance();
for(int num = 100; num <= 999; num++)
d.judgeShuiXianHua(num);
}
}
/*
369的百位:369/100=3
369的十位:369/10%10=6
369的个位:369%10=9
*/
java50题----03水仙花数
最新推荐文章于 2022-11-09 23:41:42 发布