【程序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;
  }
}