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

© 上帝的寵兒 中级黑马   /  2015-10-30 12:51  /  1268 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是在面试中常常遇见的一个问题,哪位大神分享一下标准代码??

10 个回复

正序浏览
  1. /*
  2.         需求:求出100至999的水仙花数,记录水仙花数的个数并输出。
  3.                 水仙花数:各个位上的数字的立方和等于这个数本身的数。
  4.         思路:在for遍历从100至999,判断是否水仙花数,是的话输出这个数。
  5.                 定义一个函数:输入一个数,返回这个数各个位上的立方和
  6.                 定义一个函数:输入一个数,求出这个数的立方

  7. */

  8. class ShuiXianHuaShu {
  9.         public static void main(String[] args){
  10.                 int count = 0;//计数器
  11.                 for (int i = 100;i <1000 ; i++) {
  12.                         if(i == cubeSum(i)){
  13.                                 count++;
  14.                                 System.out.println(i);
  15.                         }
  16.                 }
  17.                 System.out.println("水仙花数的个数:"+count);
  18.         }
  19.        
  20.         //cube(num)求一个数的立方
  21.         private static int cube(int num){
  22.                 return num*num*num;
  23.         }

  24.         //addSum(num)求一个数各个位上的立方和
  25.         private static int cubeSum(int num){
  26.                 int sum = 0;
  27.                 for (int i =1;i<=3 ;i++ ) {
  28.                         int key = num % 10;
  29.                         sum = sum + cube(key);
  30.                         num = num / 10 ;
  31.                 }
  32.                 return sum;
  33.         }
  34. }
复制代码

回复 使用道具 举报
66666666666666666
回复 使用道具 举报
第一天发的种子就有
回复 使用道具 举报
这个很普通吧
回复 使用道具 举报
这个面试应该不会常问吧???
回复 使用道具 举报
加油!!!!!!!!!!
回复 使用道具 举报
加油!加油!加油!加油!加油!加油!加油!加油!
回复 使用道具 举报
  1. class Demo_Flower {
  2.         public static void main(String[] args) {
  3.                 int count = 0;                //定义计数器,存储水仙花的个数
  4.                 for (int i =100; i <= 999; i ++) { //确保其是三位数
  5.                         int ge = i % 10;   //获取个位数字,只需要用10求余
  6.                         int shi = i / 10 % 10;  //获取十位数字,先对其除10,再求余
  7.                         int bai = i / 10 / 10 % 10;  //获取百位数字,相当于int bai = i / 100 & 10;

  8.                         if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {  //个位数字三次方,十位数字三次方与百位数字三次方的和等于这个数,就是水仙花数.java目前没有直接求三次方的运算符号,只能这样写
  9.                                 System.out.print(i + "\t");  //打印输出水仙花数
  10.                                 count ++;
  11.                         }
  12.                 }
  13.                 System.out.println("\n水仙花的个数为:" + count);
  14.         }
  15. }
复制代码
回复 使用道具 举报
楼上的就是我们老师讲课时用的代码
回复 使用道具 举报
是要水仙花数么
  1. /*
  2. 输出所有的水仙花数,所谓水仙花数是指一个3
  3.    位数,其各个位上数字立方和等于其本身。
  4.     例如: 153 = 1*1*1 + 3*3*3 + 5*5*5

  5. */
  6. class For04 {
  7.         public static void main(String[] args)
  8.         {
  9.                 for(int i=100;i<=999;i++){//遍历所有三位数

  10.                         int a =i/100; //百位上的数
  11.                         int b =(i-a*100)/10;//十位上的数
  12.                         int c =i%10;//个位上的数
  13.                         if(i==(a*a*a)+(b*b*b)+(c*c*c)){
  14.                                 System.out.println(i);
  15.                         }


  16.                 }
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马