e417v2 - Error
題目描述
題目要求計算一組數字的方差。輸入首先是一個整數 a,表示接下來將有 a 個數字。然後輸入這 a 個數字,計算這些數字的方差,並輸出結果。
解題思路
題目要求計算方差,方差的公式為:(sum(x_i)^2 - sum(x_i^2)) / 2n。程式碼中,p 儲存了所有數字的總和,q 儲存了所有數字的平方和。迴圈中讀取每個數字,並更新 p 和 q。最後,使用公式計算方差並輸出。由於題目要求輸出整數,因此結果會被自動截斷。
複雜度分析
- 時間複雜度: O(n)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main(){
long long int a=0,p=0,q=0;
while(cin >> a){
long long int b;
for(int i=0;i<a;i++){
scanf("%lld",&b);
p+=b;
q+=b*b;
}
printf("%lld\n",(p*p-q)/2);
a=0;p=0;q=0;
}
}