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,如需转载请自行联系原作者
目录
相关文章
|
25天前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
48 1
|
14天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
31 0
|
4天前
|
XML 缓存 Java
Java大厂面试题
Java大厂面试题
16 0
|
4天前
|
存储 安全 Java
Java大厂面试题
Java大厂面试题
10 0
|
4天前
|
存储 安全 Java
Java大厂面试题
Java大厂面试题
13 0
|
5天前
|
安全 Java
就只说 3 个 Java 面试题 —— 02
就只说 3 个 Java 面试题 —— 02
18 0
|
5天前
|
存储 安全 Java
就只说 3 个 Java 面试题
就只说 3 个 Java 面试题
10 0
|
14天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
15天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
39 0
|
21天前
|
搜索推荐 Java
Java排序算法
Java排序算法
18 0