黑马程序员技术交流社区

标题: 关于水仙花数的问题 [打印本页]

作者: 魁子    时间: 2015-9-9 21:38
标题: 关于水仙花数的问题
今天老师讲了for循环的知识!当讲到水仙花时候我是似懂非懂,
需求:在控制台输出所有的”水仙花数”

        * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
代码如下:
  1. class Test3_Flower {
  2.         public static void main(String[] args) {
  3.                 for (int i = 100;i <= 999 ;i++ ) {                      //获取100到999之间的数
  4.                         int ge = i % 10;                                                                //123 % 10
  5.                         int shi = i / 10 % 10;                                                        //12 % 10;
  6.                         int bai = i / 10 / 10 % 10;                                                //1 % 10

  7.                         if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
  8.                                 System.out.println(i);
  9.                         }
  10.                 }
  11.         }
  12. }
复制代码
就是有关  获取个位数、十位数、百位数的那块,感觉理解不太深刻!!有没有好办法解释一下获取个位、十位、百位的 方法!!!



作者: 然后呢8908    时间: 2015-9-9 21:43
这个给你个快捷记忆,获取个位直接%10,获取十位/10再%10,百位/100再%10,再多练习几次就记得很深刻了。
作者: blackpig    时间: 2015-9-9 22:14
例如在100至999中任取一个三位数123:
想要获取个位数3,就需要int ge=x%10;//123%10商12余3,这个3也正是我们要获取的个位数-->>
-->int shi=x/10%10;//123除以10的结果因为是整形所以取整得12,12%10商1余2,这个2就是要获取的十位数-->>
-->int bai=x/10/10;123除以100商1,这个1就是要获取的百位数(变量x是定义在循环语句表达式中的100至999的某个不确定的三位数)

其余的三位数也是按这种思路便可获取其个位,十位,百位,你可以自己试试,还不理解就找明白的人问问,再不理解练熟这段代码,需要的时候能直接使用这种思想就可以了.




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