【题目08】找规律求a+aa+aaa+a……a的和

【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)

package com.share.test01_10;

/**
 * 【程序8】题目:<br>
 * 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。<br>
 * 例如2+22+222+2222+22222(此时共有5个数相加)
 * 
 * @author brx
 */
public class Test08 {
    public static void main(String[] args) {
        test();
    }

    /**
     * 思路:找规律,将这个规律表示出来<br>
     * 思路1:字符串表示,通过控制个数来将这几个数表示出来<br>
     * 思路2:用数字之间的规律来表示,第2个数等于第1个数加上20,第3个数等于第2个数加上200……<br>
     * 思路3:递归,后面一个数(从第2个数开始)等于前面一个数的乘以10再加上个位上的数
     */
    public static void test() {
        System.out.println(test1(2, 2));
        System.out.println(test2(2, 2));
        System.out.println(test4(2, 2));
    }

    /**
     * 思路1
     * 
     * @param n:个位上的数字
     * @param m:相加的数字的个数
     */
    public static int test1(int n, int m) {
        int sum = 0;
        for (int i = 0; i < m; i++) {
            StringBuffer sb = new StringBuffer();
            for (int j = 0; j <= i; j++) {
                sb.append(String.valueOf(n));
            }
            sum += Integer.parseInt(sb.toString());
        }
        return sum;
    }

    /**
     * 思路2
     * 
     * @param n:个位上的数字
     * @param m:相加的数字的个数
     */
    public static int test2(int n, int m) {
        int sum = 0;
        int t = 0;
        for (int i = 0; i < m; i++) {
            t = n + t;
            sum = t + sum;
            n = n * 10;
        }
        return sum;
    }

    /**
     * 递归方法
     * 
     * @param n:个位上的数
     * @param m:第m个数
     * @return result:规律中第m个数的结果
     */
    public static int test3(int n, int m) {
        int result = n;
        if (m > 1) {
            result = test3(n, m - 1) * 10 + n;
        }
        return result;
    }

    /**
     * 思路3:<br>
     * 调用递归方法循环求和<br>
     * 求和方法
     * 
     * @param n:个位上的数
     * @param m:数的个数
     * @return sum:所有数相加的和
     */
    public static int test4(int n, int m) {
        int sum = 0;
        for (int i = 1; i <= m; i++) {
            sum += test3(n, i);
        }
        return sum;
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容