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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 下一页5 中级黑马   /  2015-5-4 00:24  /  467 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

那个水仙花的原理是什么啊?我到县政协俺还没有搞懂都,有谁掌握的比较好的吗?

7 个回复

正序浏览
q8893616 发表于 2015-5-4 22:49
取得个位上的数字好取撒   除10余数就是个位上的数字
把十位除个10就是个位了   然后就开始循环找出符合水 ...

懂了好像,不过还有点模糊
回复 使用道具 举报
取得个位上的数字好取撒   除10余数就是个位上的数字
把十位除个10就是个位了   然后就开始循环找出符合水仙花数规则的数   
回复 使用道具 举报

主要就是明白,每循环一次,就要对循环到的num的个、十、百位进行重新赋值
其次是要直到怎么获取一个数的每一位上的数,即个、十、百位。
有一个规律,就是一个数除以10的倍数,也就是,小数点向左移,除的话,获得的就是小数点前面的整数部分,模的话,获得的就是小数点后面的数。
所以要取得某个位上的数,就需要通过除以10的倍数,和模以10的倍数,来“掐头去尾”就行了。
回复 使用道具 举报
楼上正解   
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
as12510 发表于 2015-5-4 00:25
就是把每个位置(个位、十位、百位...)单独提取出来,通过if判断条件,来获取满足要求的数据 ...

能在详细点么大哥?
回复 使用道具 举报
就是把每个位置(个位、十位、百位...)单独提取出来,通过if判断条件,来获取满足要求的数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马