2020-09-20

js用递归实现s=a+aa+aaa+aaaa+….+aa…a的值,其中a是一个数字。例如2+22+222+2222

两个递归,一个实现求各个项,一个实现累加,原理是一样的

 //传入一个参数m代表第几项,n代表a的值
        function qiu(m, n) {    //这个函数实现得到各个项
            if (m == 1) {   //如果只有一项的话,就直接返回n的值 
                return n
            } else {
                return qiu((m - 1), n) + n * Math.pow(10, (m - 1));
            }
        }
        console.log(qiu(1, 2))  //2     ==>2乘10的0次方
        console.log(qiu(2, 2))  //22    ==>前一项(这等于2)加2(就是n)乘以10的1次方,得到22
        console.log(qiu(3, 2))  //222   ==>前一项(这等于22)加2(就是n)乘以10的2次方,得到222
        console.log(qiu(4, 2))  //2222  ==>前一项(这等于222)加2(就是n)乘以10的3次方,得到2222
        console.log(qiu(5, 2))  //22222 ==>前一项(这等于22)加2(就是n)乘以10的4次方,  得到22222


        function qiuHe(x, y) {  //这个函数实现累加,x代表几项相加,y代表a的值
            if (x == 1) {
                return qiu((1), y)
            } else {
                return qiu(x, y) + qiuHe((x - 1), y)
            }
        }
        console.log(qiuHe(2, 2))    //24
        console.log(qiuHe(3, 2))    //246

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页