题解 | #水仙花数#

水仙花数

http://www.nowcoder.com/practice/11c9f023a9f84418a15b48792a5f7c70


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    /**
     * 水仙花数 x
     * m <= x <= n
     * 输出 m n 范围内的所有水仙花数
     */
    public static void main(String[] args) {
        run();
    }

    static void run() {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String[] inputs = sc.nextLine().split(" ");
            int m = Integer.parseInt(inputs[0]);
            int n = Integer.parseInt(inputs[1]);
            if (n < m) {
                System.out.println("no");
                continue;
            }
            // 存放水仙花数
            List<Integer> res = new ArrayList<>();
            for (int i = m; i <= n; i++) {
                if (isWaterNum(i)) {
                    res.add(i);
                }
            }
            int size = res.size();
            if (size == 0) {
                System.out.println("no");
                continue;
            }
            // 打印水仙花数
            for (int i = 0; i < size; i++) {
                if (i != size - 1) {
                    System.out.print(res.get(i) + " ");
                } else {
                    System.out.println(res.get(i));
                }
            }
        }
    }

    /**
     * 判断一个数是否是水仙花数
     * @param num
     * @return
     */
    static boolean isWaterNum(int num) {
        String res = num + "";
        String[] nums = res.split("");
        int n = nums.length;
        if (n != 3) {
            return false;
        }
        int sum = 0;
        for (String s : nums) {
            sum += to3(Integer.parseInt(s));
        }
        return sum == num;
    }

    /**
     * 求一个数的三次方
     * @param num
     * @return
     */
    static int to3(int num) {
        int res = 1;
        for (int i = 0; i < 3; i++) {
            res *= num;
        }
        return res;
    }

}

全部评论

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务