黑马程序员技术交流社区

标题: 一点小问题 [打印本页]

作者: 下一页5    时间: 2015-5-4 00:24
标题: 一点小问题
那个水仙花的原理是什么啊?我到县政协俺还没有搞懂都,有谁掌握的比较好的吗?
作者: as12510    时间: 2015-5-4 00:25
就是把每个位置(个位、十位、百位...)单独提取出来,通过if判断条件,来获取满足要求的数据
作者: 下一页5    时间: 2015-5-4 00:27
as12510 发表于 2015-5-4 00:25
就是把每个位置(个位、十位、百位...)单独提取出来,通过if判断条件,来获取满足要求的数据 ...

能在详细点么大哥?
作者: sandra_bae    时间: 2015-5-4 22:38
  1. /*
  2. 水仙花数
  3. */

  4. class FlowerNum1
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 int count = 0;

  9.                 for(int num = 100;num <= 999; num++)
  10.                 {
  11.                         int ge = num%10;
  12.                         int shi = num%100/10;
  13.                         int bai = num/100;
  14.                         if((ge*ge*ge + shi*shi*shi + bai*bai*bai) == num)
  15.                         {
  16.                                 count++;
  17.                         }
  18.                 }

  19.                 System.out.println(count);
  20.         }
  21. }
复制代码

作者: 只吃饭不洗碗    时间: 2015-5-4 22:44
楼上正解   
作者: sandra_bae    时间: 2015-5-4 22:46
sandra_bae 发表于 2015-5-4 22:38

主要就是明白,每循环一次,就要对循环到的num的个、十、百位进行重新赋值
其次是要直到怎么获取一个数的每一位上的数,即个、十、百位。
有一个规律,就是一个数除以10的倍数,也就是,小数点向左移,除的话,获得的就是小数点前面的整数部分,模的话,获得的就是小数点后面的数。
所以要取得某个位上的数,就需要通过除以10的倍数,和模以10的倍数,来“掐头去尾”就行了。
作者: q8893616    时间: 2015-5-4 22:49
取得个位上的数字好取撒   除10余数就是个位上的数字
把十位除个10就是个位了   然后就开始循环找出符合水仙花数规则的数   
作者: 下一页5    时间: 2015-5-5 01:18
q8893616 发表于 2015-5-4 22:49
取得个位上的数字好取撒   除10余数就是个位上的数字
把十位除个10就是个位了   然后就开始循环找出符合水 ...

懂了好像,不过还有点模糊




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