一道找規律的題,所以說做題的時候草稿紙還是必須擺上的~
記錄一下這道題的原因是因為,即使你推出了公式,不注意精度和溢位問題這道題的第三個測試點還是會wa
一開始我寫的是ans+=(n+1-i)*i*num[i];但是wa了,原因就在於(n+1-i)*i大於了int 的最大範圍
(可能看來在運算中間過程時,int*int的結果雖然沒有賦值給某個變數,但程式預設這還是個int的數?!)
可以把1.for(int i=1;i<=n;i++)改為for(long long i=1;i<=n;i++)
或者是2.把ans+=(n+1-i)*i*num[i];改為ans+=num[i]*(n+1-i)*i;
#include#includeusing namespace std;
const int maxn=1e5+100;
double num[maxn];
int n;
int main()
printf("%.2lf\n",ans);
return 0;
}
1049 數列的片段和 (20 分)
1049 數列的片段和 20 分 給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 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 數列的片段和 (20 分)
1049 數列的片段和 20 分 給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 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 數列的片段和 (20 分)
給定乙個正數數列,我們可以從中擷取任意的連續的幾個數,稱為片段。例如,給定數列 我們有 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 個片段。給定正整數數列,求出全部片段包含的...