A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魁子 中级黑马   /  2015-9-9 21:38  /  917 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天老师讲了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. }
复制代码
就是有关  获取个位数、十位数、百位数的那块,感觉理解不太深刻!!有没有好办法解释一下获取个位、十位、百位的 方法!!!


2 个回复

倒序浏览
这个给你个快捷记忆,获取个位直接%10,获取十位/10再%10,百位/100再%10,再多练习几次就记得很深刻了。
回复 使用道具 举报
例如在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的某个不确定的三位数)

其余的三位数也是按这种思路便可获取其个位,十位,百位,你可以自己试试,还不理解就找明白的人问问,再不理解练熟这段代码,需要的时候能直接使用这种思想就可以了.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马