/*
一个整型三位数其个位上的数可以通过与10求余得到 如:123%10=3;
其十位上的数可以通过与10相除再与10求余得到 123/10%10=2;
其百位上的数可以通过与100相除得到 123/100=1;
通过for循环将所有的三位数与其每位数字三次方之和相比较,相等输出这个数,这个数就是水仙花数
*/
class SXH
{
public static void main(String[] args)
{
sWS(); //调用sWS 方法 打印所有三位数
sXH(); //调用sXH方法 打印出水仙花数
}
public static void sWS( )
{
System.out.println("打印所有三位数");
for(int i = 100;i<=999;i++)
{
System.out.print(i+"\t");
}
System.out.println("*********************");
}
/*
public static void sXH ()
{
System.out.println("打印水仙花数:");
for(int i = 100;i<=999;i++)
{
if( (i%10)*(i%10)*(i%10)+(i/10%10)* (i/10%10)*(i/10%10)+(i/100)*(i/100)*(i/100)==i)
System.out.print(i+"\t");
}
}
*/
public static void sXH ()
{
System.out.println("打印水仙花数:");
for(int i = 100;i<=999;i++)
{
if(f(i%10)+f(i/10%10)+f(i/100)==i) //得到个位、十位、百位上的数 分别作为f方法的实参,调用f 函数求得每位数的三次方,再求和与原数比较
System.out.print(i+"\t");
}
}
public static int f (int x)
{
int s=x*x*x;
return s;
}
}
|
|