一:題目要求
- 題目(1):最大連續子數組和(最大子段和)
背景
問題: 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時定義子段和為0,依此定義,所求的最優值為: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n
例如,當(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)時,最大子段和為20。
二:題目分析
在了解了題目以后我認為我應該使用循環和條件判斷來進行編寫,第一次我選用了將所有的情況循環出來,然后進行比較得出結果的方法來進行編寫,后來想了想實在是太麻煩,所以我還簡化一遍程序,將三層的循環簡化為了兩層的一個循環然后加上條件判斷來解決這個問題。
三:程序代碼
- 代碼如下所示
四:測試
- 選用語句測試覆蓋條件覆蓋來進行測試,分別選用了都是整數,正數與負數交叉,都是負數來滿足測試條件,測試結果如下所示![]
五:心得體會
- 在這次實驗當中,我自己動手編寫了一個簡單的程序,並且根據第二次作業的方法來進行了測試,並且對於五個覆蓋標准有了一個更為直觀的認識,我認為這次作業很有意思,也很有意義,我會更好的去完成以后的作業。