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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java中的系列總和

java中的系列總和

RISEBY 2023-01-05 16:51:25
我正在嘗試找到系列的總和。如果我得到的數字為“5”而術語的數量為“4”......那么系列就是這樣(5 * 6 * 7)+(6 * 7 *8)+(7*8*9)+(8*9*10)...同樣,它必須對條款的數量進行加法。我試過這段代碼,但它給出了錯誤的輸出。我去了哪里錯誤的?int num=5,n=4,i,j,res=0,sum=1;int k=num+1;for(i=1;i<=num-1;i++){    k=k-1;    sum=1;    for(j=1;j<=n;j++)    {        sum=sum*k;        k=k+1;    }}res=res+sum;System.out.println(res);我得到的輸出是 57120,但正確的輸出是 1770。
查看完整描述

3 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

試試這個:


int num = 5;

int sum = 0;

int n = 4;

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

  int ele = 1;

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

     ele *= k;

  }

  sum += ele;

 }

System.out.println(sum);


查看完整回答
反對 回復 2023-01-05
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

您可以嘗試使用 Java 8 流來解決這個問題。


例如:


import static java.util.stream.IntStream.range;


...


int num = 5, n = 4;

int sum1 = range(0, n).map(l -> range(num + l, num + l + 3).reduce(1, (a, r) -> a * r)).sum();

System.out.println(sum1);

這打印出來:


1770

解釋:


range(0, n) // ensures that the sum operation is executed `n` times.

.map(l -> range(num + l, num + l + 3) // generates sequences of 3 numbers starting from `num` increased by `l`

.reduce(1, (a, r) -> a * r) // calculates the product of the sequences of 3 numbers

.sum() // sums the product of all three numbers


查看完整回答
反對 回復 2023-01-05
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

你的代碼


int num=5,n=4,i,j,res=0,sum=1;

int k=num+1;

for(i=1;i<=num-1;i++)

{

    k=k-1;

    sum=1;

    for(j=1;j<=n;j++)

    {

        sum=sum*k;

        k=k+1;

    }

}

res=res+sum;   // This line should be *inside* the previous curly bracket.

System.out.println(res);

設置的作用sum = 1;是在添加下一項之前刪除 sum 的先前值。如果您已將先前的值存儲為結果 (res),這只是一個好主意。所以


res = res + sum;


應該在外部for循環(huán)內。


由于您只是乘以 k 以上的下兩個數字,因此不需要內部for循環(huán)。寫吧


sum += k * (k + 1) * (k + 2);


請注意速記表達式:


sum += ... 意思是一樣的sum = sum +  ...


k++; 意思是一樣的 k = k + 1;


k--; 意思是一樣的 k = k - 1;


此外,計算機計算速度更快


A < B + 1(1個減法)


比鍛煉更重要


A <= B(2 個減法加上一個邏輯或)。


所以在邏輯表達式中,我們總是想寫A < B + 1就寫A <= B。


最后,變量或字符之間有空格的表達式比沒有空格的表達式更容易閱讀,即a + 1 比a+1


更改代碼


int num = 5,

    n = 4,

    k = n,

    i = k,

    res = 0;


for(i = k; i < k + n; i++) // Gives n terms, e.g. k = {num, num + 1, ..., num + n - 1}

{

    res += k * (k + 1) * (k + 2);

    k++;

}

System.out.println(res);


查看完整回答
反對 回復 2023-01-05
  • 3 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號