题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
程序设计:
代码如下 | 复制代码 |
publicclassexp2{ publicstaticvoidmain(String args[]){ inti=0; math mymath =newmath(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true) System.out.println(i); } } classmath { publicintf(intx) { if(x==1|| x==2) return1; else returnf(x-1)+f(x-2); } publicbooleaniszhishu(intx) { for(inti=2;i<=x/2;i++) if(x %2==0) returnfalse; returntrue; } publicbooleanshuixianhua(intx) { inti=0,j=0,k=0; i=x /100; j=(x %100) /10; k=x %10; if(x==i*i*i+j*j*j+k*k*k) returntrue; else returnfalse;
} } |