JAVA面试算法题2

简介:

题目:

打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。


代码:

很简单,写一个方法判断某个3位数是否为水仙花数,然后外面从100到999循环,依次调用判断方法,满足的则打印出当前数。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package  com.charles.algo;
/**
  * @author charles.wang
  * 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
  * 例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
  */
public  class  ShuiXianHuaNumber {
            
            
     private  ShuiXianHuaNumber(){}
            
     /**
      * 打印所有的水仙花数
      */
     public  static  void  printAllShuiXianHuaNumber(){
                
         for ( int  i= 100 ;i<= 999 ;i++){
             if (isShuiXianHuaNumber(i))
                 System.out.print(i +  " " );
         }
     }
            
     /**
      * 判断一个数是否为水仙花数,判断依据在题目中已经给出
      * @param number
      * @return
      */
     private  static  boolean  isShuiXianHuaNumber( int  number){
                
         //因为水仙花数必须是3位数,所以判断是否在区间 [100,999]之间
         if ( (number< 100 )  || (number> 999 ))
             return  false ;
                
         //获取水仙花数的百位数字
         int  baiWei = number /  100 ;
         int  removeBaiWeiRemaining = number - baiWei * 100 ;
                
         //获取水仙花数的十位数字
         int  shiWei = removeBaiWeiRemaining /  10 ;
                
         //获取水仙花数的个位数字
         int  geWei  = removeBaiWeiRemaining - shiWei * 10 ;
                
         //计算是否为水仙花数
         if  ( Math.abs(   Math.pow(baiWei, 3L)+ Math.pow(shiWei, 3L)+ Math.pow(geWei, 3L) - number)<= 0.999 )
             return  true ;
                
         return  false ;
     }
            
     /**
      * @param args
      */
     public  static  void  main(String[] args) {
                
         printAllShuiXianHuaNumber();
     }
            
            
}




本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1345604,如需转载请自行联系原作者
目录
相关文章
|
16天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
32 0
|
23小时前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
23小时前
|
Java
[Java 面试题] ArrayList篇
[Java 面试题] ArrayList篇
|
1天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
1天前
|
Java 调度
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
8 1
|
1天前
|
存储 安全 Java
每日一道Java面试题:说一说Java中的泛型?
今天的每日一道Java面试题聊的是Java中的泛型,泛型在面试的时候偶尔会被提及,频率不是特别高,但在日后的开发工作中,却是是个高频词汇,因此,我们有必要去认真的学习它。
5 0
|
1天前
|
Java 编译器
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
4 0
|
6天前
|
XML 缓存 Java
Java大厂面试题
Java大厂面试题
18 0
|
6天前
|
存储 安全 Java
Java大厂面试题
Java大厂面试题
11 0
|
6天前
|
存储 安全 Java
Java大厂面试题
Java大厂面试题
13 0

热门文章

最新文章