zoukankan      html  css  js  c++  java
  • algorithm++:一个整数称为是:【幸运数】,如果这个整数的各位数字的平方和为1或者反复计算各位数字的平方和为1 例如 19 是个幸运数

    1):一个整数称为是:【幸运数】,如果这个整数的各位数字的平方和为1或者反复计算各位数字的平方和为1 例如 19 是个幸运数

     

    coding:java程序实现

    import org.junit.Test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class XingYunShu {
    
        List<Integer> list = new ArrayList<>();
    
        @Test
        public void demo() {
            long startTime = System.currentTimeMillis();
            // 100 以内的幸运数
            for (int i = 0; i < 100; i++) {
                boolean flag = isLuckyNumber(i);
                System.out.println("是否为幸运数:{" + i + "}=" + flag);
            }
            long endTime = System.currentTimeMillis();
            System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
        }
    
        // 判断是否为幸运数
        public boolean isLuckyNumber(Integer num) {
            List<Integer> integerList = splitNum(num);
            Integer count = 0;
            for (Integer l : integerList) {
                count += l * l;
            }
            if (count == 1) {
                return true;
            }
            if (list.contains(count)) {
                return false;
            }
            list.add(count);
            return isLuckyNumber(count);
        }
        // 把一个整数拆分为单个数值
        public List<Integer> splitNum(Integer num) {
            List<Integer> list = new ArrayList<Integer>();
            int length = (num + "").length();
            for (int i = length - 1; i >= 0; i--) {
                list.add(num % 10);
                num /= 10;
            }
            return list;
        }
    
    }

    将一个整数方式拆分的方式还有很多种,比如 number.toCharArray();  这里避免了类型之间的转换。

    有人会问道 类型之间的转换很消耗资源吗?

    java设计模式 的核心就是多态,各种流行的框架都有大量类型转换的操作。

    再烂的编程语言也不在乎这点资源,更何况java和c#。

    稍微复杂点的算法,几层循环一嵌套就顶你这来回转换几万次,计算机没那么水,怎么说也是高科技是不。

  • 相关阅读:
    EasyUI datagrid动态加载json数据
    Java缓存机制
    爬虫入门 手写一个Java爬虫
    java解决前后台跨域问题
    HttpUrlConnection 基础使用
    聊聊spring-boot-starter-data-redis的配置变更
    Linux命令: 结束命令
    Linux其他: GitBash
    Python: 字典dict: 相同点
    Python: 字典dict: zip()
  • 原文地址:https://www.cnblogs.com/codingmode/p/12626416.html
Copyright © 2011-2022 走看看