【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
import java.util.*;
public class DaffodilTest
{
public static void main(String[] args)
{
int x=0;
Vector v = new Vector();
DaffodilNumber db = new DaffodilNumber();
for( int i=100;i<1000;i++)
{
if(db.isDaffodilNumber(i)== true)
{
v.add(i);
x++;
}
}
System.out.println( "100到1000之间有" + x + "个水仙花数");
System.out.println( "所有的水仙花数为:"+v);
}
}
class DaffodilNumber
{
int b,s,g;
public boolean isDaffodilNumber( int i)
{
boolean flag = false;
g = i%10; //个位数
s = (i/10)%10; //十位数
b = i/100; //百位数
if(i==((g*g*g)+(s*s*s)+(b*b*b)))
{
flag = true;
}
return flag;
}
}
public class DaffodilTest
{
public static void main(String[] args)
{
int x=0;
Vector v = new Vector();
DaffodilNumber db = new DaffodilNumber();
for( int i=100;i<1000;i++)
{
if(db.isDaffodilNumber(i)== true)
{
v.add(i);
x++;
}
}
System.out.println( "100到1000之间有" + x + "个水仙花数");
System.out.println( "所有的水仙花数为:"+v);
}
}
class DaffodilNumber
{
int b,s,g;
public boolean isDaffodilNumber( int i)
{
boolean flag = false;
g = i%10; //个位数
s = (i/10)%10; //十位数
b = i/100; //百位数
if(i==((g*g*g)+(s*s*s)+(b*b*b)))
{
flag = true;
}
return flag;
}
}
转载于:https://blog.51cto.com/shylx123/553513