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

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

如何添加“n”個(gè)奇數(shù)?

如何添加“n”個(gè)奇數(shù)?

紅顏莎娜 2022-06-15 15:37:06
我正在嘗試編寫(xiě)一個(gè)程序來(lái)計(jì)算前 n 個(gè)正奇數(shù)的總和。我無(wú)法弄清楚如何將 n 合并到求和中。我已經(jīng)有一個(gè) do/while 循環(huán),以確保在分配 n 值時(shí)獲得正值。我知道我必須使用 for 循環(huán),但我不確定我會(huì)如何做到這一點(diǎn)。Scanner input = new Scanner(System.in); // open input stream    String cleanUpStr;                      // clean kbd buffer    int n;                                  // number    int sum;                                // sum of numbers    int cntr;                               // counter for loop    cleanUpStr = "nothing yet";    n = 0;    sum = 0;    cntr = 0;    //prompt user for the value of n    // use a loop to ensure a positive output    do    {        System.out.println("Enter the value of n");        n = input.nextInt();        cleanUpStr = input.nextLine();        // print error if n is invalid        if (n < 0)        {            System.out.println("Invalid n value of " + n + ", try again.");        } // end if    }while(n < 0);    for(cntr = 0; cntr < n; ++cntr)    {    } // end for} // end main例如:如果 n = 5,那么這應(yīng)該計(jì)算 1 + 3 + 5 + 7 + 9。
查看完整描述

4 回答

?
至尊寶的傳說(shuō)

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

這個(gè)問(wèn)題的好處是您不需要編寫(xiě)循環(huán)!前 n 個(gè)正奇數(shù)的和是 n 的平方(在這篇文章中寫(xiě)成 n^2)。這就是用 n 表示總和的方式。所以以下就足夠了:


// Calculate the sum of first n positive odd integers by using the n^2 formula.

public static int sumOddIntegers(int n) {

    return n*n;

}

如果您打算使用循環(huán),則可以通過(guò)觀察可以使用公式 (2i-1) 計(jì)算第 i 個(gè)正奇數(shù)整數(shù)來(lái)執(zhí)行以下操作:


// Calculate the sum of first n positive odd integers by adding each number iteratively in a loop.

public static int sumOddIntegers(int n) {

    int oddSum = 0;

    for (int i = 1; i <= n; i++) {

        oddSum += (2*i - 1);

    }

    return oddSum;

}

為了可視化這一點(diǎn),請(qǐng)考慮以下示例:


n = 1 List: {1} S(n) = 1 = 1 = n^2

n = 2 List: {1, 3} S(n) = 1 + 3 = 4 = n^2

n = 3 List: {1, 3, 5} S(n) = 1 + 3 + 5 = 9 = n^2

n = 4 List: {1, 3, 5, 7} S(n) = 1 + 3 + 5 + 7 = 16 = n^2

n = 5 List: {1, 3, 5, 7, 9} S(n) = 1 + 3 + 5 + 7 + 9 = 25 = n^2

And so on...

這是一個(gè)歸納證明,表明前 n 個(gè)正奇數(shù)的和是 n^2。我是 Stack Overflow 的新手,所以我希望我的格式清晰易讀。如果可以改進(jìn),請(qǐng)隨時(shí)提出修改建議 :) Stack Overflow 似乎不支持 LaTeX 樣式的指數(shù)和下標(biāo)格式,所以我盡力了。


證明

P(n):前n個(gè)正奇數(shù)之和為n^2。


基本情況

P(1): n = 1


n = 1 的情況是微不足道的。前 n 個(gè)正奇數(shù)的列表就是 {1}。因此前 n 個(gè)正奇數(shù)之和為 1。由于 1 = n = n^2,謂詞 P(1) 成立。


歸納假設(shè)

假設(shè) P(k) 對(duì)任意正整數(shù) k > 0 成立。


感應(yīng)步驟

給定 P(k),我們將證明 P(k+1) 也成立。換句話說(shuō),如果前k個(gè)正奇數(shù)之和為k^2,則前(k+1)個(gè)正奇數(shù)之和為(k+1)^2。


作為這個(gè)證明的一部分,假設(shè)以下引理。


引理1:第n個(gè)正奇數(shù)可以表示為2n-1。


如果 P(k) 成立,則前 k 個(gè)正奇數(shù) {a_1, ... a_k} 的和為 k^2,其中元素 a_k 表示為 2k-1(由引理 1)。因此,將第 (k+1) 個(gè)正奇數(shù) a_(k+1) 添加到前 k 個(gè)正奇數(shù)的列表中將產(chǎn)生前 (k+1) 個(gè)正奇數(shù)的列表,如下所示: { a_1, ... a_k, a_(k+1)}。因此,這個(gè)前 (k+1) 個(gè)正奇數(shù)的列表之和將等于前 k 個(gè)正奇數(shù)的列表之和加上 a_(k+1) 的值,即 (k+1) )st 正奇數(shù)整數(shù)。根據(jù)引理 1,第 (k+1) 個(gè)正奇數(shù)表示為 2(k+1)-1 = 2k+1。


令 S(k) = 前 k 個(gè)正奇數(shù)之和。因此,S(k) = k^2。上述陳述暗示


S(k+1) = S(k) + a_(k+1), adding the (k+1)st positive odd integer


S(k+1) = S(k) + (2(k+1)-1), by Lemma 1 


S(k+1) = S(k) + (2k+1)  


S(k+1) = k^2 + (2k+1), by inductive hypothesis


S(k+1) = k^2 + 2k + 1


S(k+1) = (k+1)^2, by factoring

因此,我們證明了如果 S(k) = k^2,則 S(k+1) = (k+1)^2。這表明 P(k) -> P(k+1)。


通過(guò)歸納,我們證明了對(duì)于任何正整數(shù) n > 0,P(n) 成立。因此,前 n 個(gè)正奇數(shù)的和為 n^2。QED。


引理 1 的證明:

這是一個(gè)歸納證明。


P(n):第n個(gè)正奇數(shù),a_n,可以表示為2n-1。


基本情況:P(1):1 是第一個(gè)正奇數(shù)(情況 n = 1)。


1 = 2(1)-1 = 1. 


Therefore, a_1 = 1 = 2n-1. Correct.

歸納假設(shè):假設(shè) P(k) 成立。


歸納步驟:如果 P(k) 成立,則 P(k+1) 成立。


如果P(k)成立,那么第k個(gè)正奇數(shù)可以表示為2k-1。通過(guò)加法,下一個(gè)正奇數(shù)(第 (k+1) 個(gè)正奇數(shù))將是 (2k-1) + 2。


= (2k-1) + 2

= 2k-1 + 2

= 2k+2 - 1

= 2(k+1) -1

我們已經(jīng)證明了 P(k) -> P(k+1)。因此,通過(guò)歸納,P(n) 適用于所有 n > 0 的整數(shù)。QED。


祝你好運(yùn)!希望這有幫助:)


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
慕運(yùn)維8079593

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

Stream很好,但是如果您是初學(xué)者,那么普通的舊for循環(huán)是您最好的朋友。


public static int sumForOddNumbers(int total) {

    int sum = 0;


    for(int i = 0, odd = 1; i < total; i++, odd += 2) {

        sum += odd;

    }


    return sum;

}


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
德瑪西亞99

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

Java 流 API 提出了非常明確的解決方案:

IntStream.iterate(1, i -> i + 2)
     .limit(n)
     .sum();

IntStream通過(guò)鏈接了解更多信息


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
胡子哥哥

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

雖然如果您關(guān)心函數(shù)式編程,流將是解決此問(wèn)題的好方法,但僅學(xué)習(xí) Java,我會(huì)建議以下內(nèi)容。


int oddValue = 1; 

int answer = 0;  

for(cntr = 0; cntr < n; ++cntr)

    {

        //adds oddvalue to your answer

        answer += oddValue;

        //adds two to odd value (next odd)

        oddValue+=2;


    }



查看完整回答
反對(duì) 回復(fù) 2022-06-15
  • 4 回答
  • 0 關(guān)注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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