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

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

數(shù)組項(xiàng)的累計(jì)和

數(shù)組項(xiàng)的累計(jì)和

C#
蝴蝶刀刀 2022-06-12 11:12:15
我有一個(gè)排序數(shù)組,其值如下: 我需要計(jì)算總計(jì)如下:場景 1 - 數(shù)組值 12、15、1712+15 = 27 27+17 = 44 44+27 = 71Total = 71場景 2 數(shù)組值 12,15,17,1912+15 = 2727+17 = 4444+19 = 6327+44+63 = 134總計(jì) = 134場景 3 數(shù)組值 12,15,17,19,2312+15 = 2727+17 = 4444+19 = 6363+23 = 8627+44+63+86 = 220總計(jì) = 220場景 4 到 N 數(shù)組值 12,15,17,19,23.....N我必須將上述邏輯帶到 C# 代碼中我寫如下:  int[] myNumbers = new int[] { 100,250,1000};            Array.Sort(myNumbers);            int sum = 0;            int temp = 0;            foreach (int y in myNumbers)            {                sum = sum + y;                          }            for(int i=0;i<myNumbers.Length-1;i++)            {               temp = temp + myNumbers[i];                  }           sum = sum + temp;           Console.Write(sum);  上面的代碼適用于數(shù)組值 100,250,1000但是對于任何其他數(shù)組值都失敗了需要幫忙!
查看完整描述

2 回答

?
慕后森

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

選項(xiàng)1


因此,如果您想獲得示例中的準(zhǔn)確結(jié)果,可以使用此方法。它將返回一個(gè)部分和數(shù)組,您可以稍后對其進(jìn)行匯總以獲得結(jié)果:


private static long[] CumulativeSums(long[] values)

{

    if (values == null || values.Length <= 1) return new long[0];


    var results = new long[values.Length];

    results[0] = values[0] + values[1];


    for (var i = 1; i < values.Length - 1; i++)

    {

        results[i] = results[i - 1] + values[i + 1];

    }


    return results;

}

并像這樣使用它:


var numbers = new long[] { 12, 15, 17, 19 };

var sumOfCumulativeSums = CumulativeSums(numbers).Sum();

sumOfCumulativeSums將是 134 。


選項(xiàng) 2


但累積和的實(shí)際正確表示是:a, a+b, a+b+c, ...。因此,如果您想要返回正確累積和的方法的正確表示,您可以改用此方法:


public static long[] CumulativeSums(long[] values)

{

    if (values == null || values.Length == 0) return new long[0];


    var results = new long[values.Length];

    results[0] = values[0];


    for (var i = 1; i < values.Length; i++)

    {

        results[i] = results[i - 1] + values[i];

    }


    return results;

}

編輯


希望這可以幫助您以任何一種方式解決您的問題,如果您對代碼有任何疑問或編輯,請?zhí)岢觥?/p>


查看完整回答
反對 回復(fù) 2022-06-12
?
慕絲7291255

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

您還可以在沒有任何中間數(shù)組分配的情況下獲得總和:


static int Cumulate( int[] numbers )

{

    if ( numbers == null || numbers.Length < 2 )

        return 0;


    Array.Sort( numbers );


    var prevsum = numbers[0] + numbers[1];

    var sum = prevsum;


    for ( int i = 2 ; i < numbers.Length ; i++ )

    {

        prevsum += numbers[i];

        sum += prevsum;

    }


    return sum;

}


查看完整回答
反對 回復(fù) 2022-06-12
  • 2 回答
  • 0 關(guān)注
  • 151 瀏覽

添加回答

舉報(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)