水仙花数的计算算法
发布日期:2021-04-30 21:05:53 浏览次数:96 分类:精选文章

本文共 1805 字,大约阅读时间需要 6 分钟。

?????????????????????????????n?????n?3??????????n??????????????????????????????????????????153?370?371?407?

?????????

????????????????????????

  • ????????????n??????????10^(n-1)?10^n - 1???????????100?999?

  • ??????????????????????????

  • ????????????????????????

  • ?????????????????n????????????

  • ???????????????????????????????????

  • ??????????????????

  • ??????

  • ??????????

    long start = (long) Math.pow(10, n - 1);
    long end = (long) Math.pow(10, n) - 1;
  • ??????

    for (long i = start; i <= end; i++) {
    // ????????????
    if (isWater???(i, n)) {
    System.out.println(i);
    }
    }
  • ??????? ?????????????10???10???????????????????

    while (num != 0) {
    temp = num % 10;
    sum += Math.pow(temp, n);
    num = num / 10;
  • ?????? ????????????????????????

    if (sum == num) {
    System.out.println("?????" + num);
    }
  • ????

    public class Water??? {
    public static void main(String[] args) {
    int n = 3;
    System.out.println("???????");
    searchWaterSsus(n);
    System.out.println("???????");
    n = 4;
    searchWaterSsus(n);
    System.out.println("???????");
    n = 5;
    searchWaterSsus(n);
    }
    private static void searchWaterSsus(int n) {
    long start = (long) Math.pow(10, n - 1);
    long end = (long) Math.pow(10, n) - 1;
    for (long num = start; num <= end; num++) {
    long sum = 0;
    long temp = 0;
    // ?????????n????
    do {
    temp = num % 10;
    sum += (long) Math.pow(temp, n);
    num /= 10;
    } while (num != 0);
    if (sum == num) {
    System.out.println(num);
    }
    }
    }
    }

    ????

    ????????????????????????

    • ???????153, 370, 371, 407
    • ???????1634, 8208, 9474
    • ???????...
    • ???????????????

    ???????????????????????????

    上一篇:Windows10下Zookeeper和kafka安装及配置
    下一篇:【剑指offer】面试题61:扑克牌中的顺子(java)

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2026年06月08日 14时15分59秒