第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

js遞歸求和1,2,3,..., n,..., 3,2,1?

js遞歸求和1,2,3,..., n,..., 3,2,1?

海綿寶寶撒 2019-03-19 17:18:12
js遞歸求和1,2,3,..., n,..., 3,2,1?
查看完整描述

5 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

答案樓上其實(shí)都有了,然而題目要求遞歸,

遞歸吧,我的理解呢,就是盡量避免什么轉(zhuǎn)化過程,盡量少動(dòng)腦吧?

我就主要說說解這種題的思路吧。

遞歸的思路就是分階段求解,然后定終點(diǎn)。

核心就是找fn(n)和fn(n-1)的關(guān)系,結(jié)合邊界條件fn(1),寫出一個(gè)如下的函數(shù):


function fn(n) {

    // 終點(diǎn)

    if (...) return ...;

    // 遞歸

    return fn(n-1) + ...;

}

以本題來說,


fn(n) = 1 + 2 + 3 + ... + n-1 + n + n-1 + ... + 3 + 2 + 1;

fn(n-1) = 1 + 2 + 3 + ... + n-1 + ... + 3 + 2 + 1;


fn(n) = fn(n-1) + n-1 + n;

終點(diǎn)


fn(1) = 1;

結(jié)合便能寫出


function fn(n) {

    if (n==1) return 1; // 終點(diǎn)

    return fn(n-1) + n-1 + n; // 遞歸關(guān)系

}

類似的就同理可得咯


查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

定義f(n) = sum(1, 2, 3, ..., n, ..., 3, 2, 1)。


解法一

問題轉(zhuǎn)化為f(n) = 2 * g(n) - n,其中g(shù)(n) = sum(1, 2, 3, ..., n)。不用高斯求和法強(qiáng)行遞歸的話,g(n) = g(n - 1) + n(n > 1),g(n) = 1(n = 1)。


function g(n) {

  if(n > 1) return g(n - 1) + n;

  else if(n == 1) return 1;

}


function f(n) {

  return 2 * g(n) + n;

}

解法二

顯然,f(n) = f(n - 1) + n + (n - 1)(n > 1),f(n) = 1(n = 1)。


function f(n) {

  if(n > 1) return f(n - 1) + n + n - 1;

  else if(n == 1) return 1;

}


查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

var a = 1;

for (var i = 2; i < n; i++) {

    a = a + i

}

var sum = 2*a + n;

console.log(sum)


查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

將1,2,3,..., n,..., 3,2,1轉(zhuǎn)化為求前n項(xiàng)的和與前n-1的和的和。

于是有了:

1 + 2 + 3 + 4 + ... + n + ... + 3 + 2 + 1 = n(n + 1)/2 + (n - 1)(n - 1 + 1)/2 

整理得到 n2


所以:


Math.pow(n, 2)

但是題目又要求用遞歸做。


const cal = (n) => {

  if(n === 1) {

    return 1;

  }

  return 2 * n + cal(n - 1) - 1;

}


console.log(cal(4)) //16


查看完整回答
反對(duì) 回復(fù) 2019-03-25
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

不用數(shù)學(xué)的思想 單純用遞歸的思想 

比如傳入4

先執(zhí)行先序遞歸 index++

先序遞歸做value = 1+2+3+4 

滿足條件后 return;

然后執(zhí)行后續(xù)遞歸 開始index--

后續(xù)遞歸做value += 3+2+1+0;

var cal = function() {


        var index=0;

        var value=0;

        return function show(n) {

                if(n < 0) return;

                value += index;

                if(index === n)return;

                index++; 

                show(n);

                index--;

                value += index;

                return value;

        }

    };

    cal()(4) // 16

    


查看完整回答
反對(duì) 回復(fù) 2019-03-25
  • 5 回答
  • 0 關(guān)注
  • 1002 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)