【程序3】
题目:打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: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;

  }

}