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

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

  • 相关阅读:
    Ionic2开发环境搭建
    关于在浏览器中测试cordova plugin的注意事项。
    像azure一样桌面显示Windows系统信息
    吐槽下微软
    Hyper-v UBUNTU 12.04 模板设置
    MongoDB整库备份与还原以及单个collection备份、恢复方法
    nginx 配置
    vsftpd配置文件详解
    分享几个免费IP地址查询接口(API)
    黑客帝国效果
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4629452.html
Copyright © 2011-2022 走看看