美文网首页基础编程50题
【题目08】找规律求a+aa+aaa+a……a的和

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

作者: Xplorist | 来源:发表于2017-03-25 20:09 被阅读21次

【程序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;
    }

}

相关文章

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

    【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+222...

  • python二级题库21--递归求阶乘

    一、题目 利用递归方法求5!。 二、分析 找规律 f(n) = n * f(n-1) 三、方案 输出结果: 四、交...

  • BZOJ_1002 轮状病毒

    1.题目相关 标签:找规律 题目地址:http://www.lydsy.com/JudgeOnline/probl...

  • B1104 Sum of Number Segments (找规

    1104 Sum of Number Segments (20分) 题目看错,看对了也不找不出来规律,自己找的规律...

  • 求题目

    朝天门上路 午门刀下龙 天命自不凡 奈何为鬼雄

  • 求题目

    我们在青春的小路前行, 把时光也当做马力。 听那风声在旷野里高唳, 蟋蟀声也变得低迷。 好久不见的太阳, 请别把我...

  • 求题目

    求题目 黎垣铄 清晨割韭绿油油, 地主压长工。 长工辛苦剥短工, 土肥弄地主。 何去何留血馒头, ...

  • 数学规律题拓展研究(第一章)

    有比较才有鉴别”。通过比较,可以发现事物的相同点和不同点,更容易找到事物的变化规律。找规律的题目,通常按照一定的顺...

  • 第一章

    有比较才有鉴别”。通过比较,可以发现事物的相同点和不同点,更容易找到事物的变化规律。找规律的题目,通常按照一定的顺...

  • 找题目

    非常快的,从领成绩单的那一刻到现在已回到了老家,似乎只在那一夜之间。这不,我们班的语文老师,却不让我们睡安稳觉...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/ihocottx.html