zoukankan      html  css  js  c++  java
  • 1到1亿的自然数,求所有数的拆分后的数字之和

    1到1亿的自然数,求所有数的拆分后的数字之和,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1

    /**
         * 1到1亿的自然数,求所有数的拆分后的数字之和,
         * 如286 拆分成2、8、6,
         * 如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1
         * @param args
         */
        public static void main(String[] args) {
            /**
             * 思路分析
             * 个位数:十位数:百位数:千位数:万位数:十万位数:百万位数:千万位数:亿
             */
            int a=1+2+3+4+5+6+7+8+9;//a=45
            int aa=10+a+2*10+a+3*10+a+4*10+a+5*10+a
                    +6*10+a+7*10+a+8*10+a+9*10+a;//=10*(1+2+3+4+5+6+7+8+9)+9a;
            int aaa=100+aa+2*100+aa+3*100+aa+4*100+aa+5*100+aa
                    +6*100+aa+7*100+aa+8*100+aa+9*100+aa;//=100a+9aa
            int aaaa=1000+aaa+2*1000+aaa+3*1000+aaa+4*1000+aaa+5*1000+aaa
                    +6*1000+aaa+7*1000+aaa+8*1000+aaa+9*1000+aaa;//=1000a+9aaa
            int aaaaa=10000+aaaa+2*10000+aaaa+3*10000+aaaa+4*10000+aaaa+5*10000+aaaa
                    +6*10000+aaaa+7*10000+aaaa+8*10000+aaaa+9*10000+aaaa;//=10000a+9aaaa;
            int aaaaaa=100000+aaaaa+2*100000+aaaaa+3*100000+aaaaa+4*100000+aaaaa+5*100000+aaaaa
                    +6*100000+aaaaa+7*100000+aaaaa+8*100000+aaaaa+9*100000+aaaaa;//=100000a+9aaaaa;
            int aaaaaaa=1000000+aaaaaa+2*1000000+aaaaaa+3*1000000+aaaaaa+4*1000000+aaaaaa+5*1000000+aaaaaa
                    +6*1000000+aaaaaa+7*1000000+aaaaaa+8*1000000+aaaaaa+9*1000000+aaaaaa;//=1000000a+9aaaaa;
            Long aaaaaaaa=((10000000l*a)+(9l*aaaaaaa));
            int aaaaaaaaa=1;
            System.out.println(a);
            System.out.println(aa);
            System.out.println(aaa);
            System.out.println(aaaa);
            System.out.println(aaaaa);
            System.out.println(aaaaaa);
            System.out.println(aaaaaaa);
            System.out.println(aaaaaaaa);
            System.out.println(aaaaaaaaa);
            long sum=a*(1+10+100+1000+10000+100000+1000000+10000000)+9l*(a+aa+aaa+aaaa+aaaaa+aaaaaa+aaaaaaa)+aaaaaaaaa;
            System.out.println(sum);

    输出结果是:

    45
    855
    12195
    154755
    1842795
    21085155
    234766395
    2562897555
    1
    2820759751

    网上看到的题目,自己尝试写的。

  • 相关阅读:
    lampp、xampp安装文档
    tomcat下配置https方式
    1.6:怎么学习Linux
    1.5:linux的应用领域
    1.3:linux的优点和缺点
    1.4:Linux发行版本详解
    1.2:liunx和unix的区别
    1.1:Linux系统简介
    mysql中获取表名&字段名的查询语句
    kettle组件-输出
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4629452.html
Copyright © 2011-2022 走看看