PAT (Basic Level) Practice (中文)- 1049 數列的片段和(20 分)
阿新 • • 發佈:2018-12-23
題目大意:略。
解題思路:
1、每個 a[i] 右邊出現過幾次,左邊出現過幾次,右邊規律好找比較穩定,然後用總次數手算出來除以右邊的次數,發現左邊的規律也來了。
2、注意:變數計算的順序不一樣會導致溢位的情況。
AC 程式碼
#include<bits/stdc++.h> #include<cmath> #define mem(a,b) memset(a,b,sizeof a); #define INF 0x3f3f3f3f using namespace std; typedef long long ll; int main() { int n; while(~scanf("%d",&n)) { double a,rs=0; for(int i=0;i<n;i++) { scanf("%lf",&a); rs+=a*(i+1)*(n-i); // 不會溢位 // rs+=(i+1)*(n-i)*a; // 會溢位 } printf("%.2f\n",rs); } return 0; }