分析:20分,暴力求解多半超時,需要降低時間複雜度
列出n = 4 的所有子串行(底色黃),找規律(最簡方法見最後方,該分析有問題)
也就是說,將所有底為黃的數字相加就是要輸出的結果了
橫著看的話,當序列第i個元素i開頭,該行的所有和就等於i個i的全序列和(即從第乙個元素相加到第i個元素)相加,再減去i之前的所有全序列和
所以,在輸入時就計算出i的全序列和,放入陣列中,就簡單了
**如下
#include
using
namespace std;
double sub[
100005
], sum[
100005];
intmain()
double sum1 =
0, sum2 =0;
//sum1輸出值 sum2要減的值
for(
int i =
0; i < n; i++
)printf
("%.2lf"
, sum1)
;}
反饋
該**不能通過測試點2,答案錯誤;猜測是在大量的加減運算中損失了精度
更簡單準確的方法見此部落格
1049 數列的片段和
給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 0.1 0.1,0.2 0.1,0.2,0.3 0.1,0.2,0.3,0.4 0.2 0.2,0.3 0.2,0.3,0.4 0.3 0.3,0.4 0.4 這 10 個片段。給定正整數數列,求出全部片段包含的...
1049 數列的片段和
給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 0.1 0.1,0.2 0.1,0.2,0.3 0.1,0.2,0.3,0.4 0.2 0.2,0.3 0.2,0.3,0.4 0.3 0.3,0.4 0.4 這 10 個片段。給定正整數數列,求出全部片段包含的...
1049 數列的片段和
給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 0.1 0.1,0.2 0.1,0.2,0.3 0.1,0.2,0.3,0.4 0.2 0.2,0.3 0.2,0.3,0.4 0.3 0.3,0.4 0.4 這 10 個片段。給定正整數數列,求出全部片段包含的...