黑马程序员技术交流社区

标题: 水仙花数 [打印本页]

作者: 北海北    时间: 2017-2-28 07:24
标题: 水仙花数
【程序3】   
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
public class lianxi03 {
public static void main(String[] args) {
     int b1, b2, b3;
     for(int m=101; m<1000; m++) {
      b3 = m / 100;
      b2 = m % 100 / 10;
      b1 = m %    10;
      if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {
      System.out.println(m+"是一

作者: 易大帅    时间: 2017-2-28 08:24
能说出原理吗

作者: 南山南    时间: 2017-2-28 08:42
这不就是简单的for循环吗?最小的三位数是100最大的是999从两者之间取值,模于100取百位,取余100模10取十位,取余10求个位

作者: 南山南    时间: 2017-2-28 08:43
话说,还没开班,理解不深

作者: lvshen9    时间: 2017-2-28 08:53
请问m的范围是怎么确定的

作者: 北海北    时间: 2017-2-28 12:37
lvshen9 发表于 2017-2-28 08:53
请问m的范围是怎么确定的

水仙花数是个3位数,所以在100-1000之间,所以循环之间的数就可以了

作者: 北海北    时间: 2017-2-28 12:38
易大帅 发表于 2017-2-28 08:24
能说出原理吗

你楼下说的原理很详细了

作者: 笑对明天    时间: 2017-2-28 13:43
易大帅 发表于 2017-2-28 08:24
能说出原理吗

依次求出个十百位上的数,每位数字的三次方的和等于该数本身,就是水仙花数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2