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

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

 

posted on 2015-07-08 10:31  一天不进步,就是退步  阅读(1417)  评论(0编辑  收藏  举报